|
|
|
|
|
Zálohování pomocí programu rdiff-backup
Rdiff-backup je
program napsaný v jazyce Python a slouží pro vzdálené zálohování
souborů nebo adresářů. Rdiff-backup využívá některých vlastností programu
mirror a rsync a navíc přidává podporu pro inkrementální zálohování. Podporuje
ukládání podadresářů, hard linků i symbolických linků, speciálních
souborů (v adresáři Rdiff-backup vytváří zálohu tím způsobem, že klasicky kopíruje data z jednoho adresáře (původního) do adresáře druhého (tedy záložního). Pokud je na straně počítače na který se zálohuje stejná funkcionalita (podpora ACL, EA, možnost změnit vlastníka souboru a podobně) jako na původním zálohovaném počítači, tak jsou zazálohovaná data identická jako původní data, což je výhodné, protože lze data ze zálohy obnovit prakticky pouze jejich zkopírováním a nejsou tedy vázána na opětovné použití programu rdiff-backup.
Pokud počítač na který se zálohuje nepodporuje některé funkcionality, které
jsou na zálohovaném počítači, tak jsou tyto funkcionality zapsány do souboru s
metadaty, který leží v adresáři se zálohovanými daty, konkrétně v podadresáři
s názvem InstalaceInstalace programu rdiff-backup v CentOSu je velice jednoduchá pokud máte přidán repozitář RPMForge. Pak lze program nainstalovat následujícím příkazem: yum install rdiff-backup Pro podporu ACL je zapotřebí doinstalovat python modul pylibacl a pro podporu rozšířených atributů pyxattr. Dag Wieers nám zase ulehčil práci, protože v repozitáři RPMForge jsou oba python moduly v podobě RPM balíčků k dispozici, takže je stačí pouze nainstalovat: yum install python-libacl python-xattr Pokud si budete chtít zálohování vzdálených počítačů zautomatizovat a spouštět jej například z cronu, tak je výhodné si nastavit přihlašování přes ssh protokol s využitím klíčů namísto hesel. O problematice vytváření a používání klíčů pro přihlašování přes ssh protokol pojednává článek "Ochrana SSH démona proti útokům (2)", každopádně zde vytváření klíčů ještě znovu zopakuji. Příklady použití
Program rdiff-backup nemá parametr Lokální záloha adresáře
Zálohu adresáře rdiff-backup /etc /mnt/backup/etc_backup V adresáři backup.log chars_to_quote current_mirror.2007-01-30T23:12:06+01:00.data error_log.2007-01-30T23:12:06+01:00.data.gz file_statistics.2007-01-30T23:12:06+01:00.data.gz increments mirror_metadata.2007-01-30T23:12:06+01:00.snapshot.gz session_statistics.2007-01-30T23:12:06+01:00.data Vzdálená záloha adresářeVzdálená záloha adresáře je totožná jako lokální záloha s tím rozdílem, že na jedné straně uvedeme kromě adresáře i název počítače (nebo jeho IP adresu). Je také dobré vědět, že pro vzdálenou zálohu je zapotřebí, aby i na vzdáleném zálohovaném (či zálohovacím) počítači byl nainstalován program rdiff-backup. V opačném případě skončí pokus o zálohu vzdáleného počítače s chybou. Názorný příklad vzdálené zálohy: rdiff-backup ondra@www.tachec.org::/home/ondra /home/ondra/tachec_home_backup
Výše uvedený příklad provede pod uživatelem Samozřejmě můžete udělat zálohu i opačně, tzn. zazálohovat lokální adresář někam na vzdálený počítač, příkaz bude následovný: rdiff-backup /home/ondra/ ondra@www.tachec.org::tachec_home_backup Dokonce lze provést i zálohu ze vzdáleného počítače na jiný vzdálený počítač: rdiff-backup ondra@www.tachec.org::/home/ondra \ backup@backup.tachec.org::/mnt/backup/tachec_home_backup Při nastaveném klasickém přihlašování přes ssh protokol na základě hesel po vás budou požadována hesla na oba vzdálené počítače.
Rdiff-backup podporuje i seznamy adresářů/souborů, které chceme
( rdiff-backup --exclude /dev --exclude /proc --exclude /sys --exclude /tmp \ ondra@www.tachec.org::/ backup@backup.tachec.org::/mnt/backup/tachec_full_backup Obnova adresáře
Obnovu adresáře (nebo v našem příkladu pouze jednoho souboru) lze
provést klasickým příkazem rdiff-backup -r now backup@backup.tachec.org::/mnt/backup/tachec_home_backup/.vimrc \ /home/ondra/.vimrc
Parametr Obnovu lze také provést přímo z daného souboru s inkrementy (cesta k souboru s inkrementem byla zalomena na dva řádky): rdiff-backup backup@backup.tachec.org::/mnt/backup/tachec_home_backup/rdiff-backup-data/ /increments/.vimrc.2007-02-03T18:21:41+01:00.diff.gz /home/ondra/.vimrc Promazávání starých souborů s přírůstkyProtože je někdy nežádoucí z důvodu úspory místa uchovávat staré verze souborů, tak lze tyto staré verze periodicky promazávat. Starší verze souborů než 4 týdny smažeme následovně: rdiff-backup --remove-older-than 4W ondra@www.tachec.org::tachec_home_backup Soubory, které se nezměnily například za poslední 2 měsíce zůstanou samozřejmě zachovány. Mazání se týka pouze více verzí jednoho souboru. Získání informací o zálohovaném adresářiInformace o jednotlivých přírůstcích v zálohovaném adresáři získáme příkazem: rdiff-backup -l ondra@www.tachec.org::tachec_home_backup
Parametr rdiff-backup --compare /home/ondra/ ondra@www.tachec.org::tachec_home_backup
Dalším užitečným parametrem je parametr rdiff-backup --test-server ondra@backup.tachec.org::/ Konfigurace zálohovacího počítačeKonfigurace zálohovacího počítače představuje nastavení pár věcí a protože není nad příklady z praxe, tak zde celou tuto konfiguraci uvedu. Níže uvedená konfigurace zálohovacího počítače je jednou z mnoha možností a ne každému musí vyhovovat.
Zálohovací počítač se bude jmenovat
Nejprve si tedy na zálohovacím počítači ( adduser -s /sbin/nologin -d /var/backup backup
Přihlásíme se jako uživatel su -m backup
a vygenerujeme si ssh klíče (bez "passphrase"), abychom nemuseli zadávat
heslo pro přihlášení na zálohovaný server ( ssh-keygen -t rsa
Já jsem si klíč uložil do souboru
Můžeme si ještě vytvořit konfigurační soubor host www-backup hostname www user backup identityfile /var/backup/.ssh/id_rsa_www compression yes protocol 2 Pokud zálohujete po lokální síti o rychlosti 100Mbit/s a více, tak komprese není potřeba. Máte-li jeden ssh klíč pro všechny počítače, které budete zálohovat, tak si tento konfigurační soubor nemusíte vytvářet. Nezapomeneme nastavit bezpečná práva: chmod 700 /var/backup/.ssh/ chmod 600 /var/backup/.ssh/config chmod 600 /var/backup/.ssh/id_rsa_www
Přihlásíme se jako uživatel adduser backup mkdir /home/backup/.ssh chown backup:backup /home/backup/.ssh
Zkopírujeme si (jako uživatel scp root@linux_backup:/var/backup/.ssh/id_rsa_www.pub /home/backup/.ssh/authorized_keys chmod 700 /home/backup/.ssh chmod 600 /home/backup/.ssh/authorized_keys
Otevřeme si soubor command="sudo rdiff-backup --server --restrict-read-only /",from="linux_backup", no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAAB3Nza...TwJ71E= backup@linux_backup
Abychom se dostali ke všem souborům na zálohovaném počítači, tak si na něm
ještě nastavíme spouštění příkazu backup ALL=NOPASSWD: /usr/bin/rdiff-backup --server --restrict-read-only /
To je z hlediska konfigurace vše, nyní již můžeme z počítače
rdiff-backup www-backup::/etc backup_etc Pokud po vás není požadováno heslo a záloha proběhne, tak máte vše nastaveno v pořádku. V opačném případě si projděte znovu veškeré konfigurační soubory a případně se zkuste na zálohovaný počítač přihlásit přes ssh protokol se zapnutým debug módem.
Zautomatizování zálohování pak již spočívá jen v nastavení crontabu
na zálohovacím počítači ( 20 2 * * * rdiff-backup www-backup::/etc backup_etc
Pokud se nechcete nastavovat s konfigurací do souboru
rdiff-backup --remote-schema \ "ssh %s sudo /usr/bin/rdiff-backup --server --restrict-read-only /" \ www-backup::/etc backup_etc
Naposledy změněno: 19.2.2007 15:10
|
|
|
© 2006-2008 o.k.
|
|