Zálohování pomocí rsync
Notebook je vystaven daleko více příležitostem k jeho zničení a s ním i zničení dat na jeho disku. Právě proto jsem si usmyslel, že jej podrobím pravidelnému a plně automatizovanému zálohování. Díky záznamu v /etc/crontab na notebooku se zálohování provádí každý den v 4.04.
# /etc/crontab
# backup
4 4 * * * root /root/backup/cron-zaloha.sh
O samotné zálohování se stará celkem jednoduchý script, který nejdříve zkontroluje dostupnost zálohovacího počítače (ten mám v sousední místnosti a využívá se jako mailserver, router a všeobecně přístupný desktop – puštěn je stále). Pokud ping projde, spustí se vlastní zálohování, jehož výsledek je zaslán mailem rootovi na notebooku. Jako bonus je přidána tabulka volného místa na disku. Přihlašování po ssh je řešeno rsa klíči, takže není třeba žádného hesla.
#!/bin/bash # # Zalohovani FS z cronu # /root/backup/cron-zaloha.sh # log=/var/tmp/backup-mail-$$ target=rsync://jkpc/daily-backup info=true cmd="rsync -ax --delete-after --exclude=/var/tmp/ --exclude=/mnt/ / $target" ping jkpc -c 2 -W 3 >/dev/null 2>&1 || exit echo started at `date` >$log echo $cmd >>$log echo >>$log ( eval $cmd \ >>$log 2>&1 ) && ( echo "" >> $log echo "All seems be OK." >> $log echo "" >> $log su pepa -c "ssh jkpc 'df -h /dev/hda[231]'" >> $log [ "$info" == "true" ] && mail -s "[Info] Backup to $target" root < $log ) || ( echo "" >> $log su pepa -c "ssh jkpc 'df -h /dev/hda[231]'" >> $log mail -s "[Error] Backup to $target" root < $log ) rm $log
Na zálohovacím počítači je z inetd spouštěn rsync s touto konfigurací:
# /etc/rsyncd.conf [daily-backup] comment = Denni backup notbooka path = /home/backup/jknb-daily use chroot = yes pid file = /var/run/rsync.dailybackup.pid read only = no list = yes uid = root gid = root hosts allow = 192.168.1.2 192.168.1.3 dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.bz2 *.tbz
# /etc/inetd.conf
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon
Obnovení
Když se neco stane a je potřeba využít záložní kopii, tak stačí:
rsync -av rsync://jkpc/daily-backup /
Vřele doporučuji mít na zálohovacím počítači připravený staticky skompilovaný rsync a v šuplíku cd slaxe či jiné live distribuce.