Benutzer-Werkzeuge

Webseiten-Werkzeuge


addamasartus:rsync.107

Mein rsync-Lieblings-Aufruf

Ich mußte den früher immer aus der History herauskramen—inzwischen habe ich das so oft gebraucht, daß ich die Switches im Schlaf herunterbeten kann. Trotzdem—man weiß ja nie, wenn man’s doch mal vergißt. Getreu dem Motto, daß diese Sammlung hier auch eine Gedächtnisstütze für mich selbst sein soll, gibt’s hier eine entsprechende Aktennotiz to self:

In relativ beliebiger Reihenfolge frisch aus dem Gedächtnis geschrieben:

rsync -avhhH86lsSzP --stats --log-file=${HOME}/Logs/rsync.log ${Quelle} ${Ziel}

Für kompliziertere Dinge gerne auch den hier:

rsync -avhhH86lsSzP --stats --log-file=${HOME}/Logs/rsync.log \
    --include .rsync-filter --filter=': .rsync-filter' \
    --delete-excluded --delete-delay --fuzzy \
    ${Quelle} ${Ziel}

Zuerst mal die kurzen Optionen:

  • -a (–archive). Manchmal sind die Berechtigungen nicht hilfreich, weil es ein fremdes System ist. Dann reichen -t (–times; absolut notwendig) und -r (–recursive).
  • -v (–verbose). Ich bin ein neugieriges Eichhörnchen und schau insbesondere einem längeren Lauf gerne zu. Für nicht-interaktive Benutzung mache ich -v natürlich aus.
  • -hh (–human-readable), und zwar als Zweierpotenzen, nicht dezimal.
  • -H: –hard-links sollen beibehalten werden. Macht den Aufruf mitunter deutlich aufwendiger, aber ich arbeite viel mit hard links, daher ist das unverzichtbar.
  • -8 (–8-bit-output): kein unsinniges Verstümmeln von Unicode-Dateinamen. Wenn ich meine Locale falsch gesetzt habe, bin ich selber daran schuld. Wozu solche Escaping-Geschichten gut sein sollen, außer daß es damit noch schlimmer aussieht als Mojibake, ist mir ein Rätsel.
  • -6: prefer –ipv6.
  • -l (–links): Symlinks beibehalten. Anderenfalls werden diese übersprungen.
  • -s (–protect-args): verhindert, daß beim rsync über ssh irgendwelche wilden Shell-Geschichten laufen. Verzeichnisnamen, in denen Leerzeichen oder andere Dinge enthalten sind, können sonst nicht sinnvoll angegeben werden.
  • -S: handle –sparse files efficiently.
  • -z (–compress): habe ich nur manchmal drin, vor allem dann, wenn ich über’s Internet synchronisiere und viele kleine Dateien involviert sind. Ansonsten ist es eher kontraproduktiv.
  • -P = –partial + –progress: so wie bei -v will ich sehen, was hier vorgeht. Außerdem möchte ich, wenn ich den Transfer abbreche, insbesondere große Dateien nicht wieder von vorne beginnen.

… dann die langen:

  • –stats produziert eine nette Zusammenfassung am Ende des Durchlaufs, wo aufgeführt wird, wieviel gespart worden ist und so fort. Ich mag Statistiken. 8-)
  • –log-file=${Pfad}: außerordentlich praktisch, weil dort drin steht vor allem drin, wieso diese oder jene Datei synchronisiert wird oder nicht.

Für kompliziertere Dinge dann noch die hier (bei einigen davon hab ich jetzt aber doch in die Manpage gekuckt):

  • –filter=': .rsync-filter' –include .rsync-filter ist vor allem für regelmäßige Backups praktisch. So kann ich in jedes Verzeichnis eine .rsync-filter-Datei legen, in der ich für den dort anfangenden Unterbaum irgendwelche speziellen Ausschlußregeln und so festlegen kann. Besonders praktisch in Zusammenhang mit rsnapshot.
  • –delete-delay und –fuzzy: Dateien werden erstens mal überhaupt gelöscht, zweitens erst spät, also nicht gleich sofort beim Traversieren. In Zusammenhang mit –fuzzy hat rsync dann mehr Material, um eine Datei zu rekonstruieren, und löscht sie sich nicht zuerst weg, um sie dann unter anderem Namen einen Moment später wieder hochzuladen.
  • –delete-excluded löscht Dinge, die über exclude-Regeln nicht synchronisiert werden. Normalerweise werden diese ignoriert.

Wie du siehst: alles ganz einfach. 8-) ◀

Diskussion

addamasartus/rsync.107.txt · Zuletzt geändert: 2016-05-12 11:27 (vor 3 Jahren) von Stefan Unterweger