SCP überträgt nur geänderte Dateien


30

Ich benutze folgenden Befehl, um Dateien serverübergreifend zu übertragen

scp -rc blowfish /source/directory/* username@domain.net:/destination/directory

Gibt es eine Möglichkeit, nur Dateien zu übertragen, für die Dateien geändert wurden, genau wie updatefür den Befehl cp?

Antworten:


52

rsync ist dein Freund.

rsync -ru /source/directory/* username@domain.net:/destination/directory

Wenn Sie möchten, dass Dateien am Ziel gelöscht werden, die an der Quelle nicht mehr vorhanden sind, fügen Sie die --deleteOption hinzu.


4
Wenn Sie jedoch eine Synchronisierung mit einem Webserver durchführen und dieser Server HTML-Code zwischenspeichert, möchten Sie diesen möglicherweise nicht verwenden --delete, da Besucher auf einer veralteten Seite möglicherweise ein nicht mehr vorhandenes Asset anfordern.
Jackson

@Jackson ein sauberer Prozess enthält keine variablen Daten wie Caches oder Konfigurationen in den Quellen.
Chris Pillen

In einigen Fällen habe ich mit Servern außerhalb meiner Domain zu tun, die keine haben, rsyncaber haben scp. Gibt es eine vergleichbare Lösung, auch wenn ein paar Zeilen Skript benötigt werden?
iX3

Die Antwort ist hilfreich, aber die Frage war, ob dies mit scp selbst erreicht werden kann.
Mladen B.

1

Im Allgemeinen fragt man nach scp, weil es einen Grund gibt. Das heißt, rsyncd kann nicht auf dem Ziel installiert werden.

files=`find . -newermt "-3600 secs"`

for file in $files
do
       sshpass -p "" scp "$file" "root@$IP://usr/local/www/current/$file"
done
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.