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/
Nějaké ty komentáře