Ich habe einen Ordner mit Dateien für eine statische Website wie:
/site/index.html
/site/css/css.css
/site/js/js.js
/site/images/...
Wenn ich etwas auf meinem Laptop aktualisiere, möchte ich mit einem einzigen Befehl die Dateien an meinen Ubuntu-Server senden. Ich möchte kein FTP darauf einrichten, wenn ich es nicht auch habe. Ich frage mich, ob scp damit umgehen kann.
tar
viassh
: unix.stackexchange.com/a/10028/79839Antworten:
Der Befehl
scp -r source user@target:dest
durchsucht alle Unterverzeichnisse der Quelle und kopiert sie.Verhält
scp
sich jedoch wiecp
und kopiert Dateien immer, auch wenn sie auf Quelle und Ziel gleich sind. [ Hier finden Sie eine Problemumgehung.]Da es sich um eine statische Website handelt, werden Sie höchstwahrscheinlich nur Aktualisierungen vornehmen und nicht das Ganze neu erstellen. Sie werden also wahrscheinlich feststellen, dass sich die Dinge schneller entwickeln, wenn Sie
rsync
statt ssh ssh verwendenscp
. Wahrscheinlich so etwas wie... um loszulegen. Wenn Sie dies über ein LAN tun, würde ich die Optionen
-avW
stattdessen persönlich für verwendenrsync
.Mit Rsync können Sie auch Löschungen in Ihrer Quelle duplizieren. Wenn Sie also eine Datei aus Ihrem Baum entfernen, können Sie
rsync
wie oben beschrieben vorgehen und das Flag--delete
einfügen. Dadurch wird dieselbe Datei von der Zielseite entfernt.quelle
scp hat ein rekursives Flag, das tut, was Sie wollen.
scp -r /base/directory user@server:/to/location
von
man scp
quelle
scp -r und rsync -r sind die zuverlässigsten Methoden, um das zu bekommen, was Sie wollen, wie andere angemerkt haben.
Sie können sshfs auch verwenden, um es als lokales Laufwerk bereitzustellen:
sshfs user@host:/site /mnt/mountpoint
(Allerdings ist es wahrscheinlich besser, vor Ort zu arbeiten und mit rsync zu implementieren. Nur ein weiteres Tool, das Sie beachten sollten.)
quelle