it-swarm.com.de

Kann ich einen Ordner mit Unterordnern scp?

Ich habe einen Ordner, der Dateien für eine statische Website enthält, wie:

/site/index.html
/site/css/css.css
/site/js/js.js
/site/images/...

Wenn ich etwas auf meinem Laptop aktualisiere, möchte ich, dass ein einziger Befehl die Dateien an meinen Ubuntu-Server sendet. Ich möchte kein FTP darauf einrichten, wenn ich es nicht habe. Ich frage mich, ob scp damit umgehen kann.

32
Blankman

Der Befehl scp -r source [email protected]:dest durchsucht alle Unterverzeichnisse der Quelle und kopiert sie.

scp verhält sich jedoch wie cp und kopiert immer Dateien, auch wenn sie sowohl an der Quelle als auch am Ziel gleich sind. [Siehe hier für eine Problemumgehung.]

Da es sich um eine statische Website handelt, nehmen Sie höchstwahrscheinlich nur Aktualisierungen vor und erstellen nicht das Ganze neu. Daher werden Sie wahrscheinlich feststellen, dass sich die Dinge schneller entwickeln, wenn Sie rsync über ssh anstelle von scp. Wahrscheinlich so etwas wie

rsync -av -e ssh source [email protected]:dest

... um loszulegen. Wenn Sie dies über ein LAN tun, würde ich persönlich die Optionen -avW anstelle von rsync verwenden.

Mit Rsync können Sie auch Löschvorgänge in Ihrer Quelle duplizieren. Wenn Sie also eine Datei aus Ihrem Baum entfernen, können Sie rsync wie oben ausführen und das Flag --delete einfügen. Dadurch wird dieselbe Datei von der Zielseite entfernt.

57

scp hat ein rekursives Flag, das macht, was Sie wollen. scp -r /base/directory [email protected]:/to/location

von man scp

-r      Recursively copy entire directories.  Note that scp follows symbolic
          links encountered in the tree traversal.
9
Zypher

scp -r und rsync -r sind die zuverlässigsten Methoden, um das zu erhalten, was Sie möchten, wie andere angemerkt haben.

Sie können sshfs auch verwenden, um es wie ein lokales Laufwerk zu mounten: sshfs [email protected]:/site /mnt/mountpoint

(Allerdings ist es wahrscheinlich besser, lokal zu arbeiten und mit rsync bereitzustellen. Nur ein weiteres Tool, das Sie beachten sollten.)

2
Luke Schlather