Uživatelské nástroje

Nástroje pro tento web


linux-hosts-backup

Zálohování více hostů pomocí rsync

Na zálohování více linux strojů jsem se rozhodnul, že bych mohl použít aplikace rsnyc. Uvidíme, jak se nám pro tuto věc bude hodit. Naše požadavky jsou zálohovat více linux serverů pomocí ssh

Instalace rsync-e

Rsync určitě bude v každé distribuci linuxu. Když ji ještě nemáme nainstalovanou, uděláme to. V Debianu :

apt-get install rsync

v Gentoo :

emerge rsync

Přípravy před tvorbou skriptu

Pro zálohování vytvoříme na zálohovacím serveru ssh klíče, abychom je mohli distribuovat na zálohované servery a zajistit tak vzdálené přihlašování pomocí klíčů, bez zadávání hesel. Pri generování ssh klíče zadáme heslo. Finta je v tom, že pomocí aplikace keychain jsme schopni uchovat po zadání hesla toto v paměti. Samozřejmě po restartu zálohovacího serveru už heslo není v paměti a MUSÍ se pro zálohování znovu zadat, jinak sckript čeká na heslo.

ssh-keygen -t dsa

Přeneseme veřejný ssh klíč na vzdálený server a po přihlášené k serveru je přidáme do ssh klíčů, které bude akceptovat při vzdáleném připojení. Následně vyzkoušíme přihlášení. Vzdálený server bude vyžadovat pouze heslo k ssh klíči (Enter passphrase for key '/root/.ssh/id_dsa')

scp ~/.ssh/id_dsa.pub root@my-remote-server.com:
ssh root@my-remote-server.cz
cd .ssh
touch authorized_keys2
chmod 600 authorized_keys2
cat ../id_dsa.pub >> authorized_keys2
rm ../id_dsa.pub

V jiném terminálu ověříme :

backup-server ~ # ssh root@my-remote-server.com
Enter passphrase for key '/root/.ssh/id_dsa': 
Last login: Sat Jul 18 15:14:10 2009 from lululala.domena.com
remote-server1 ~ #

Takto přeneseme veřejný ssh klíč na všechny servery, ze kterých budeme pomocí rsync dělat zálohy. Co s tím, když u každého serveru potřebujeme zálohovat / vynechat určité adresáře? K tomu využijeme u rsync aplikace vhodného přepínače –exclude-from.

Keychain pro zadávání passphrase

Abychom mohli dát script do cron-u, musíme nějakým způsobem zajistit „automatické“ zadávání passphrase pro ssh klíč. Na to se nám bude hodit šikovná aplikace keychain. U uživatele root do .bash_profile přidáme následující :

/usr/bin/keychain ~/.ssh/id_dsa
# sourcing my hostname
source ~/.keychain/$HOSTNAME-sh

Následně se odhlásíme a přihlásíme. Při přihlášení se nás keychain zeptá na passphrase. Zadáme ji a máme ji v paměti. Tak a teď je ten okamžik, kdy už se můžeme s passphrase v paměti přihlásit ke vzdálenému serveru pomocí ssh a bez hesla dostaneme prompt :-) :

ssh root@my-remote-server.com
linux-hosts-backup.txt · Poslední úprava: 2013/08/06 21:41 (upraveno mimo DokuWiki)