sftp: Laden Sie alle in einem Ordner enthaltenen Dateien, Verzeichnisse und Unterverzeichnisse hoch
Auf Maschine A habe ich den Ordner
/home/a/
Auf Maschine B habe ich den Ordner
/home/b/
Ich möchte alle Dateien, Verzeichnisse und Unterverzeichnisse von /home/a in /home/b mit sftp übertragen Auf Maschine A habe ich die Befehle ausprobiert:
sftp [email protected]
put /home/a/* /home/b/
Aber es funktioniert nicht, ich erhalte die Fehlermeldung:"Nicht reguläre Datei /home/a/a1 überspringen"... [a1 ist ein Unterverzeichnis von a]
Wie kann ich die put Anweisung ändern?
Dank! :)
BEARBEITEN:
Ich habe es gelöst mit scp:
scp -r /home/a/ [email protected]:/home/b/
6 answers
Obwohl rsync nicht unbedingt sftp entspricht, ist rsync eine sehr leistungsfähige Alternative für scp und sftp, insbesondere beim Aktualisieren der Kopien von Maschine A auf Maschine B, da es nicht kopiert die Dateien, die nicht geändert wurden; Es ist auch in der Lage, Dateien von Maschine B zu entfernen, die von Maschine A gelöscht wurden (nur wenn es natürlich gesagt wird).
In Ihrem Fall, wäre die syntax
rsync -zrp /home/a/ [email protected]:/home/b/
Die Option -r
dient zum rekursiven Kopieren von Dateien, -z
ermöglicht die Komprimierung während der Übertragung, und -p
behält die Dateiberechtigungen (Dateierstellung, Bearbeiten, etc.) beim Kopieren, was scp AFAIK nicht tut. Viele weitere Optionen sind möglich; lesen Sie wie gewohnt die Seiten man
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-02-08 22:41:19
In sftp
lädt dieser Befehl rekursiv den Inhalt des aktuellen Verzeichnisses in das entfernte aktuelle Verzeichnis hoch:
put -r .
Siehe man sftp
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-10-03 06:34:10
scp
(secure copy) ist das Linux de facto für die Übertragung von Dateien über einen sicheren Tunnel. In Ihrem Fall möchten Sie den rekursiven Schalter verwenden, z. B.:
scp -r /home/a/ [email protected]:/home/b/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-10-10 12:40:19
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-01-04 14:02:14
Eigentlich sollte put-r funktionieren. Der Destintionsordner muss jedoch auf Ihrem Remote-Host vorhanden sein:
sftp> put -r sourcefolder
Uploading sourcefolder/ to /user/folder
Couldn't canonicalize: No such file or directory
....
sftp> mkdir sourcefolder
sftp> put -r sourcefolder
Uploading sourcefolder/ to /user/folder/sourcefolder
Entering sourcefolder/
sourcefolder/file1
sourcefolder/file2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-10-05 13:53:58
In meinem Fall war rsync
nicht möglich, also habe ich verwendet:
mput -rp /home/a/ /home/b/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-02-14 10:10:51