rsync mit Standard-Parametern (defaults) für progress und exclude versehen

In manchen Umgebungen gäbe man rsync gern einge Parameter/Optionen als Standard vor. Sei es um die Aufrufe von rsync übersichtlicher zu gestalten oder einfach um ein paar dauernd wiederholte Eingaben auf der Tastatur zu sparen. Ich ergänze als default Vorgabe im einzelnen

  1. eine Reihe von selbst definierten exclude pattern, also Definitionen von Dateien, die nicht synchronisiert werden sollen via --exclude-from=FILE,
  2. den Ausschluss von SVN und CVS Dateien mit Hilfe des Parameters --cvs-exclude
  3. und die Anzeige eines Fortschrittsbalkens mit --progress.

zu 1.) Es gibt Dateien, die nerven einfach fast immer, die will man nicht synchronisieren. Um diese zentral zu pflegen und ohne die einzelnen Aufrufe unübersichtlich zu machen, habe ich die Datei ~/.rsync/exclude angelegt und dort Zeilenweise die exclude pattern eingetragen. Meine Datei sieht z. Zt. wie folgt aus.

*.DS_Store
*._*
*Thumbs.db
*.bak
*~
*.tmp
*.temp
.Trash/*

Zu Beachten ist hier, dass die exclude pattern immer relativ zu den zu synchronisierenden Pfaden angewendet werden. Doch dazu mehr auf der man page von rsync (Wenn der Link nicht funktioniert installiere das super praktische Bwana)!

zu 3.) Hier wird einem zwar nicht der Fortschritt des gesammten Kopiervorgangs verraten, aber immerhin ein Fortschrittsbalken für die aktuell von rsync übertragene Datei. Hier ist abzuwägen. Wenn man viele lokale Kopiervorgänge mit großer Zahl kleiner Dateien durchführt, kann dies die Synchronisierung deutlich verlangsamen. Wenn man jedoch wie ich hauptsächlich Dateien an entfernte Server überträgt, ist das schon praktisch. Ebenfalls ein Auschlusskriterium ist die Verwendung von rsync in einem Cron-Job mit aktivierter E-Mail-Funktion. Hier wäre zu testen, ob evtl. durch das Hinzufügen von --quiet die default-Werte überschrieben werden können.

Wie können die Parameter nun standardmäßig aufgerufen werden? Mit Hilfe eines Alias! Dazu einfach folgende Zeile in der Datei ~/.bash_profile (wenn sie nicht existiert: einfach neu anlegen) ergänzen:

alias rsync = 'rsync --cvs-exclude --exclude-from=$HOME/.rsync/exclude --progress'

Die Sache mit dem alias funktioniert so übrigens mit jedem anderem Parameter und generell jedem Shell-Befehl.

2 Gedanken zu „rsync mit Standard-Parametern (defaults) für progress und exclude versehen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.