Data backup over rsync – zálohování dat pomocí rsync

V následujícím návodu se pokusim sepsat jak jednoduše zálohovat data z vice linux serveru na jeden centrální backup server. Řeseno v CentOS 5.x ..ale je to zcela univerzální způsob.

Příklad:

na backup serveru dejte do crontab:

30 01 * * * root /usr/bin/rsync -ave ssh root@adresaprvnihoserveru.cz:/var/www /zaloha/prvniserver/daily –compress –delete >/var/log/moje_logy/rsync_prvniserver.log

30 23 * * * root /usr/bin/rsync -ave ssh root@adresadruhehohoserveru.cz:/var/www /zaloha/druhyserver/daily –compress –delete >/var/log/moje_logy/rsync_druhyserver.log

tímto se kopírují/zrcadlé pouze změny v cestě /var/www do cílové složky /zaloha/prvniserver

aby dialog rsync nevyžadoval heslo tak na zálohovací stanici spusťte příkaz:

ssh-keygen -f ~/.ssh/id_rsa -q -P ""
cat ~/.ssh/id_rsa.pub

tímto jsme si vytvořili veřejný a soukromý klíč na zálohovací stanici. passfrazi nechte prázdnou a vzniklý soubor id_rsa.pub v cestě /root/.ssh/ (nebo /home/user/.ssh/ ) přejmenovaný na authorized_keys a zkopírujte do home$/.ssh/ na zálohovaných serverech.

zkuste nyní spustit váš rsync z příkazové řádky..mělo by se spustit kopírování dat. Při dalších spuštěních se budou přenášet jen nová a změněná data. Přepínač –delete zajišťuje mazání smazaných souboru na backup serveru. Příkaz tedy udržuje přesný stav souborové struktury a dat.

Vhodnou kombinací použíti crontab+rsync dosáhnete denních záloh v takovém cyklu který vám vyhovuje.

Další info naleznete v článku na root.cz http://www.root.cz/clanky/pokrocile-zalohovani-s-rsync/

Zkoušení rsync doporučuju někde kde nehrozí, že ublížíte ostým datům …zejména s přepínačem –delete zacházejte opatrně a s rozvahou.

poznámky:

Pokud se chcete připojovat na jiný než standardní port pro ssh (22) tak využijte následující syntaxi:
rsync -avz -e „ssh -p $cisloPortu“ user@vzdalenaip:/cesta/k/souboru/ /lokalni/cesta/

Pokud chcete během přenosu vidět co nejvíc informací jako například aktualní přenosovou rychlost nebo precentuální vyjádření již proběhlého přenosu tak použijte parametry –stats –progress Příklad:
rsync –stats –progress -avz -e „ssh -p $cisloPortu“ user@vzdalenaip:/cesta/k/souboru/ /lokalni/cesta/

SHARE IT:

Leave a Reply