====== 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