Backup VPS w systemie Debian

Dzis będzie o backup moje VPS i rozwiazaniach z których to ja korzystam, czyli backup mysql oraz plików, przy czym częśc backupu odbywa się lokalnie a częśc zdanie na mojego nas-a.
AutoMySQLBackup
Program banalna. Jak sama nazwa mówi jest to program do automatycznej kopii baz danych MySQL.
apt-get install automysqlbackup
Skrypt jest uruchamiany z cron-a dobowa i przy podstawowej konfiguracji dump-y bazy składuje w /var/lib/automysqlbackup, jednak oczywiście kilka parametrów można zmienić i u mnie wyglada to tak:
vim /etc/default/automysqlbackup
BACKUPDIR="/backup/sql" MAILADDR="[email protected]" # mail który dostanie info o backupie
I to wszystko :) jak widać moje dumpy są w /backup/sql.
rdiffBackup
rdiffBackup używam do kopii zapasowej stron internetowych, a dokladniej zmian w plikach. Program jest banalny :), jednak na początek musimy go zainstalować.
apt-get install rdiff-backup
Teraz aby wszystko zadziałało musimy zrobić wpisy w cronie.
crontab -e
00 00 * * * rdiff-backup --remove-older-than 30D --force /backup/rdiff/ 10 * * * * rdiff-backup -v0 --exclude-regexp 'log' --exclude-regexp 'cache' /web/ /backup/rdiff/
Więc jak widać w pierwszej linii kasujemy pliki starsze niż 30 dni oraz robimy backup.
rSnaphot
Tą aplikacja, a raczej skryptem dokonuje backupu całościowego, dobowego swojego VPS na NAS-a.
W pierwszej kolejności dodamy do serwera backupowego klucz ssh, tak aby backupy wykonywały się samoczynnie.
Generowanie klucza (jeżeli takiego nie ma):
ssh-keygen –t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: The key's randomart image is:
Po wygenerowaniu nowego klucza wgrywamy do na serwer backupu:
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
Testujemy, powinno zadziałać ssh bez hasła
ssh [email protected]
Instalacja oprogramowania:
apt-get install rsnapshot
I chwila konfiguracji, trzeba pamiętać iż w pliku konfiguracyjnym nie używamy spacji a tabulatory
vim /etc/rsnapshot.conf
snapshot_root /raid/backup/vps/ #wskazujemy miejsce składowania backupów # ile beda trzymane backupy w rotacji retain daily 31 # ile dni retain weekly 4 # ile tygodni retain monthly 12 #ile miesiecy #definicje backupow backup /etc/ etc-local/ # lokalny etc backup [email protected]:/ vps/ #backup samego mojego vps backup [email protected]:/ vps2/ #jakis inny backup innej maszyny
Teraz pozostanie nam do skonfigurowania cron, wg. uznania.
vim /etc/cron.d/rsnapshot
# 0 */4 * * * root /usr/bin/rsnapshot hourly 30 1 * * * root /usr/bin/rsnapshot daily 0 3 * * 1 root /usr/bin/rsnapshot weekly 30 2 1 * * root /usr/bin/rsnapshot monthly
Godzinowe backupy nie są u mnie używane więc # :)
etckeeper
A to ciekawa aplikacja która pilnuje nam katalogu etc, co też widać gdy działa apt-get.
apt-get install etckeeper
I to w zasadzie wszystko :)
Aplikacja uruchamiana jest z crona w katalogu /etc/cron.daily
Teraz cała zabawa polega na operowaniu bzr-em. Przykładowy log
$ bzr log | more ------------------------------------------------------------ revno: 428 committer: rootbranch nick: 8px /etc repository timestamp: Mon 2014-11-17 08:19:04 +0100 message: saving uncommitted changes in /etc prior to apt run ------------------------------------------------------------ revno: 427 committer: root branch nick: 8px /etc repository timestamp: Sun 2014-11-16 19:38:07 +0100 message: committing changes in /etc after apt run Package changes: -jetty8 8.1.3-4 -libjetty8-extra-java 8.1.3-4 -libjetty8-java 8.1.3-4 ------------------------------------------------------------ revno: 426 committer: root branch nick: 8px /etc repository timestamp: Sun 2014-11-16 19:37:33 +0100 message: saving uncommitted changes in /etc prior to apt run
Zamiast bzr można używać też dla przykładu git-a.
I to koniec na dziś :)