Regina Schaukrug: Rückfrage

Beitrag lesen

Wie ist denn die Syntax, wenn ich auf demselben Server rsync anwenden möchte?

Wenn rsync läuft, dann geht auch ssh:

ssh userName@einServer rsync /sourceDir userName@andererServer:/targetDir

ich möchte meinen lokalen Änderungen auf 3 Zielverzeichnisse sichern. Bisher mache ich das mit 3 aufeinanderfolgenden rsync-Befehlen.

Frage: Kann man das auch in einem Befehl machen?

Wieso das denn? rsync ist super! Man sollte mal das Manual lesen und daran denken, dass es a) den mount-Befehl und b) immer ein root-Verzeichnis gibt. Und dann auf Ideen kommen:

1. Lösung:

mkdir /tmp/mutter;
mkdir /tmp/mutter/kind1;
mkdir /tmp/mutter/kind2;
mkdir /tmp/mutter/kind3;

mount -B /was1 /tmp/mutter/kind1;
mount -B /was2 /tmp/mutter/kind2;
mount -B /was3 /tmp/mutter/kind3;

rsync [OPTIONEN] /tmp/mutter/* userName@andererServer:/targetDir/;

if (umount /tmp/mutter/kind1 && umount /tmp/mutter/kind2 && umount /tmp/mutter/kind3 ); then
   rm -r /tmp/mutter/;
fi

Das kann aber auch zu viel oder zu kompliziert sein, denn es geht viel einfacher:

2. (wohl bessere) Lösung:

Datei: rsync.excludes: (Schließt erst einmal alles aus)

/*
/.*

Datei rsync.includes: (Diese Dateien und Ordner werden dennoch gesichert/Übertragen)

/home
/var/spool/mail
/var/lib/mysql

… und dann ganz einfach:

rsync  -avu  --exclude-from="/path/to/rsync.excludes" --include-from="/path/to/rsync.excludes" / userName@andererServer:/targetDir/;

Beides geht auch via ssh. Zudem sollte Dich man 5 crontab oder crontab -e auf Ideen bringen...