Wie kann man Dateien nicht kopieren, sondern von einem Server auf einen anderen verschieben (beide Linux)?
man scp
hat mir nichts nützliches gegeben. Ich kann 'scp' und dann 'rm' nicht verwenden, da ich sicherstellen muss, dass die Datei erfolgreich übertragen wurde. Wenn während der Übertragung ein Fehler auftritt, darf die Datei nicht gelöscht werden.
Vielleicht sollte ich irgendwie Exit-Code verwenden, aber wie? Außerdem gibt es viele Dateien, und wenn die letzte Datei fehlschlägt, ist es keine so gute Option, den gesamten Haufen erfolgreich übertragener Dateien beizubehalten.
Vielleicht gibt es noch etwas anderes als SCP?
quelle
-e ssh
ist seit vielen Jahren der implizite Standardwert. In der Regel muss dieser Parameter nicht mehr verwendet werden.smv() { rsync -az --remove-source-files "$@"; }
zu meiner Toolbox hinzugefügt . Danke.Verwenden Sie
rsync
anstelle vonscp
:Mehr Infos mit
man rsync
.quelle
Diese Frage wurde gut beantwortet und die Antwort akzeptiert, aber da sie ganz oben auf der Titelseite steht, dachte ich, ich würde zumindest versuchen, sie präziser zu beantworten, wenn auch weniger elegant. Ja, Sie können den Rückkehrcode von verwenden
scp
, und ich mache es oft. Inbash
:Ich gehe davon aus, dass mehrere Dateien kopiert und Fehler im Stapel richtig behandelt werden, also für mehrere Dateien:
Letzteres ist nur praktisch, wenn Sie es verwenden
ssh-agent
, aber ich hoffe sehr, dass Sie es sind.quelle
-l
Flag verwendet.-l 8192
Zum Beispiel, um Transfers auf 8192 kb / s zu begrenzenin meiner situation ist ssh port nicht 22, also
funktioniert bei mir.
quelle
Wenn Sie einen älteren Zielserver als ich haben, können Sie ihn nicht verwenden
aber du musst verwenden
stattdessen.
quelle
Wenn dies in zwei Schritten problemlos möglich ist, können Sie
scp
die Datei vom Remote-Server kopieren und anschließend ausführenssh -e "rm /path/to/file"
, um sie von der Festplatte zu entfernen. Beim Verschieben von Dateien, insbesondere zwischen Computern, kann es vorkommen, dass Probleme auftreten. Daher empfiehlt es sich, das Kopieren und Löschen separat durchzuführen und die Datei nur dann zu entfernen, wenn Sie sicher sind, dass sie zuerst erfolgreich kopiert wurde.quelle