Fájlok biztonsági mentése rsync-el.
Ami az rsync-et különlegessé teszi, az az rsync algoritmus, ami összehasonlítja a helyi és a távoli gépen lévő adatokat időrendben és részenként egy ellenőrzőösszeg segítségével. Így csak azokat a részeket másolja át, amik különböznek. Ezért ez az algoritmus nagyon hatékony, így rengeteg biztonsági mentő megoldásba van beépítve.
Az rsync futhat akár a távoli héjon (SSH-n keresztül) vagy futhat mint rsyncd démon a szerveren. A példában SSH-val érjük el a lementendő állományokat:
rsync -avz --delete chris@server1:/home/chris/pics/ chrispics/
A parancssorban megadjuk a mentendő állományok helyét a távoli gép könyvtár struktúrájában (/home/chris/pics), illetve a helyi rendszeren a mentések helyét (chrispics/).
Kapcsolók jelentése:
-a – archiváló mód, minden állomány rekurzívan legyen átmásolva a távoli könyvtárból
-z – fájlok tömörítése
-v – bőbeszédű mód
--delete kapcsolóval az rsync törli az összes olyan helyi állományt, ami nincs meg a távoli kiszolgálón.
Íme egy példa a heti egyszeri adatmentésre:
mkdir /var/backups rsync --delete --backup \ --backup-dir=/var/backups/backup-`date +%A` \ -avz chris@server1:/home/chris/Personal/ \ /var/backups/current-backup/
Amikor a program lefut, minden állomány a /home/chris/Personal könyvtárból át lesz másolva a helyi /var/backups/current-backup könyvtárba. Minden módosított állomány, a módosítás napjára vonatkozó könyvtárba fog kerülni. Pl. ha lefut kedden, akkor minden kedden módosított állomány a backup-kedd könyvtárba kerül (magyar rendszert feltételezve), de ha pénteken fut le akkor a módosított állományok a backup-péntek könyvtárba kerülnek, így minden héten keletkezik 7 könyvtárad a módosításokkal együtt.
Egy másik trükk a forgó mentésekre a hard linkek használata a többszörös másolatok helyett. Ez a két lépéses folyamat megoldja a mentések forgását:
rm -rf /var/backups/backup-old/ mv /var/backups/backup-current/ /var/backups/backup-old/ rsync --delete --link-dest=/var/backups/backup-old -avz \ chris@server1:/home/chris/Personal/ /var/backups/backup-current/
Ebben a példában, az előzőleg már létrejött backup-current könyvtárat átnevezzük backup-old-ra, de előtte a két hetes mentéseket töröljük. Amikor a teljes mentés fut az rsync --link-dest kapcsolójával, akkor ha bármelyik állomány megegyezik a távoli gépen lévő Personal könyvtárban a helyi gépen lévő adatokkal és az előző mentéssel, akkor keletkezik egy hard link a backup-old és a backup-current könyvtár között.
A hard linkek használatával a backup-current és a backup-old könyvtár között rengeteg helyet lehet megtakarítani. Például van egy állományod mind a két könyvtárban, akkor biztos lehetsz benne, hogy az fizikailag csak egy állomány.
Forrás: Egy ismeretlen PDF a merevlemezem egy elrejtett szegletében. :)