rsync nur neue Dateien kopieren, keine Updates?

10

Ich möchte rsync verwenden, um Dateien von einem Remote-Server zu kopieren. Ich würde gerne

  • Kopieren Sie nur Dateien vom Server, und drücken Sie keine Dateien zurück.
  • Kopieren Sie nicht vorhandene Dateien. Wenn die Remote-Datei neuer ist, möchte ich sie nicht kopieren
  • habe es automatisch. Dies fordert mich jedes Mal zur Eingabe meines Passworts auf und ich möchte, dass es von cron ausgeführt wird. Wie führe ich es in einem von cron ausgeführten Bash-Skript aus?
isaaclw
quelle
Um es automatisch zu haben, --password-filewürde die Option das Passwort für die Server-Eingabeaufforderung bereitstellen. Die Datei sollte nur die Passphrase im Klartext enthalten und anderen Benutzern keinen Lesezugriff gewähren.
Altmas5

Antworten:

5

Punkte 1 und 2: Wie Sie angeben, was kopiert werden soll, lesen Sie am besten in der rsync- Manpage . Schauen Sie sich in Ihrem Fall insbesondere das Flag --ignore-existent an.

Punkt 3: Dieses Tutorial soll Ihnen helfen, passwortloses ssh mit rsync zu verwenden. Zusammenfassung: Richten Sie ssh ohne Passwort ein und verwenden Sie '-e ssh', um rsync anzuweisen, ssh anstelle von rsh zu verwenden, um eine Verbindung zum Remote-Host herzustellen.

pjz
quelle
Ich habe den Mann angeschaut und kann nicht herausfinden, was es mir erlaubt, nur neue Dateien zu kopieren und nicht zu aktualisieren.
1

Für den zweiten Teil, da pjz den Rest beantwortet hat, können Sie den Schalter --ignore-existent verwenden, um nur neue Dateien abzurufen.

Von http://www.samba.org/ftp/rsync/rsync.html :

Dadurch wird rsync angewiesen, die Aktualisierung von Dateien zu überspringen, die bereits auf dem Ziel vorhanden sind (vorhandene Verzeichnisse werden nicht ignoriert, da sonst nichts unternommen wird). Siehe auch - vorhanden. Diese Option ist eine Übertragungsregel und kein Ausschluss. Sie wirkt sich also nicht auf die Daten aus, die in die Dateilisten aufgenommen werden, und hat daher keine Auswirkungen auf das Löschen. Es begrenzt nur die Dateien, deren Übertragung der Empfänger anfordert.

Diese Option kann für Benutzer nützlich sein, die Sicherungen mit der Option --link-dest durchführen, wenn sie einen unterbrochenen Sicherungslauf fortsetzen müssen. Da ein --link-dest-Lauf in eine neue Verzeichnishierarchie kopiert wird (wenn er ordnungsgemäß verwendet wird), wird durch die Verwendung von --ignore exist sichergestellt, dass die bereits verarbeiteten Dateien nicht optimiert werden (wodurch eine Änderung der Berechtigungen für die Datei vermieden wird) fest verknüpfte Dateien). Dies bedeutet, dass diese Option nur die vorhandenen Dateien in der Zielhierarchie selbst betrachtet.

runlevelsix
quelle