Clonen von Dateibäumen mittels »rsync«
Das folgende Beispiel zeigt, wie die TeX-Installation auf einem Rechner an den
Zustand der TeX-Installation auf einem anderen Rechner mittels »rsync«
angepasst werden kann. Der Zielrechner sei i75422
:
...
YEAR=2016
...
rsync -avz --delete --keep-dirlinks --progress \
--exclude=texlive/$YEAR/tlpkg/backups \
--exclude=texlive/$YEAR/texmf-dist/source \
/usr/local/texlive i75422:/usr/local/
rsync -avzL --delete --keep-dirlinks --progress \
/usr/local/share/texmf i75422:/usr/local/share/
rsync -avz --delete --keep-dirlinks --progress \
/etc/profile.d/zzz-texlive.sh i75422:/etc/profile.d/
Zur Erklärung: Das Verzeichnis /usr/local/texlive
auf dem eigenen Rechner
(Quelle mit aktuellem Zustand) einschließlich sämtlicher Unterverzeichnisse
soll zum Zielrechner (i75422
) in intelligenter Weise dupliziert werden. Wie
dargestellt, ist das mit einem /
endende höher liegende Verzeichnis als Ziel
anzugeben. Die Optionen von »rsync« haben folgende Bedeutung:
- »-a« – der übliche Transfermodus, der die Dateieigenschaften bewahrt
- »-v« – verbose
- »-z« – komprimiere während der Übertragung
- »--delete« – Lösche Dateien auf dem Zielsystem, wenn sie auf dem Quellsystem nicht mehr existieren.
- »--progress« – Fortschrittsanzeige
- »--keep-dirlinks« – Behandle Symlinks auf dem Zielsystem wie Verzeichnisse.
Erklärung zum letzten Punkt. Es sei angenommen, dass der auf dem Rechner
i75422
existierende Pfad /usr/local/texlive
aus Platzgründen auf
/data/texlive
als eigenliches Ziel verweist (Symlink dorthin). Ohne die
Option --keep-dirlinks
würde der rsync-Prozess die Verhältnisse des
Quellsystems exakt auf das Zielsystem übertragen, d.h. den Symlink durch das
auf dem Quellsystem existierende Verzeichnis ersetzen, was hier aber nicht
gewollt ist.