rsync használata

Ha két gép között szeretnénk fájlokat szinkronizálni vagy biztonsági mentéseket készíteni, akkor az rsync programot érdemes használnunk. Én a laptop és az asztali gép szinkronizálására használom. Először is telepítsük fel mindkét gépre az rsync programot. A program hasonlóan használható, mint az rcp ill. scp. Lássunk néhány példát:

rsync *.c tavoligep:progz
A fenti példa az aktuális könyvtárban levő .c fájlokat másolja át a tavoligep gépre. Ha a távoli gépen már léteznek ezek a .c fájlok, akkor az rsync protokoll szerint csak a fájlok közötti különbséget másolja át program.

rsync -avz tavoligep:src/proba /tmp
Ha a fenti parancsot kiadjuk, akkor arhív (-a) módban másolja a fájlokat az rsync. Ez azt jelenti, hogy az eszközök, a szimbolikus linkek, az attribútumok és tulajdonosok megmaradnak a másolás során. A -v kapcsolóval bőbeszédűvé tehetjük az rsync, míg a -z hatására tömörítve küldi ill. fogadja az adatokat.

rsync -avz tavoligep:src/proba/ /tmp
A könyvtár után írt / jel hatására a célkönyvtárban nem készül el a proba könyvtár. A következő két parancs ugyanúgy működik:
rsync -avz /src/foo /dest
rsync -avz /src/foo/ /dest/foo

A transzfereket érdemes kódolt csatornákon végezni. Erre szolgál a -rsh (röviden -e) kapcsoló. Használata:

rsync -av --rsh="ssh -l ssh-user" rsync-user@host::module[/path] local-path

A -b kapcsolót biztonsági mentések készítésére használhatjuk (felülíráskor ~ végű fájl keletkezik), a -u-val pedig csak a régebbi fájlokat fogja felülírni az rsync. Ha a --exclude-t használjuk, nem fogja a megadott fájlokat másolgatni. És végül a következő paranccsokkal szinkronizálom a könyvtárakat az asztali gép és a notebook között:

rsync -e ssh -avuz --exclude '*~' --progress ~/Docs/ triton:~/Docs
rsync -e ssh -avuz --exclude '*~' --progress triton:~/Docs/ ~/Docs

A -P kapcsoló hatása egyezik a --partial --progress kapcsolóval. Ennek hatására a részben letöltött fájlokat nem törli az rsync és másolás közben látjuk a folyamat paramétereit.