Automatyczne backupy za pomocą aplikacji rdiff-backup - jak?

Zombie
DoreK
DoreK α-tester v3

Witam, kolejne pytanie od zielonego dorka 😄 Co należy wpisać w putty aby aplikacja rdiff-backup wykonywała każdego dnia o 06:00 kopię zapasową folderu /home (aimpanel) oraz usuwała kopie zapasowe starsze niż 3 dni? Oczywiście na tym samym serwerze bo nie mam osobnego do przechowywania backupów. Aplikacja została już zainstalowana.

SystemZ
SystemZ Admin lvlup.pro

Instalujemy paczkę na Ubuntu/Debian na koncie root

apt-get install rdiff-backup

Tworzymy kopię /home do /backup/home dając jej najniższy priorytet CPU oraz dysku aby nie lagowało oraz z uniknięciem plików typu już zrobione backupy w .zip robisz tak:

ionice -c3 nice -19 rdiff-backup --exclude /home/niepotrzebny_folder --exclude /home/niepotrzebny_plik /home/ /backup/home/

Kopie starsze niż 3 dni usuwasz w ten sposób:

rdiff-backup --force --remove-older-than 3D /backup/home/

Nie testowałem bo pisane trochę z pamięci, trzeba sprawdzić czy działa, stworzyć sobie skrypt w rozsądnym miejscu, nadać mu prawa do wykonywania przez chmod +x i dodać do crona wykonywanie tego skryptu o potrzebnej porze przez crontab -e lub wrzucenie pliku do przykładowo /etc/cron.d/

Warto też wziąć pod uwagę aby zatrzymać serwery przed tworzeniem backupa aby kopia plików była spójna oraz rozważyć czy nie przyda nam się też wrzucić do backupa dumpa MySQL'a

https://lvlup.rok.ovh/t/jak-przerzucic-cala-baze-mysql-na-inny-vps/801

Uwaga, ostrzegam że działanie rdiff-backup na bardzo dużej ilości małych plików typu pliki graczy w MC może być bardzo powolne, jeśli da się uniknąć robienia kopii tych plików to polecam zrobić ich kopie osobno np. przez tar czy zip gdyż same z siebie za dużo nie zajmują.

Timo
Timo Moderator forum.lvlup.pro

A żeby robiło backup z /home/user/ do /backup/user/ na innym VPS o IP 123.456.7.89 ? W sensie backup z VPS 1 do VPS 2? Dało by się tak zrobić?

SystemZ
SystemZ Admin lvlup.pro

Da się używać zdalnie, w końcu to uniksopodobny system i wolne narzędzia 😎

Podaję przykład dla "ciągnięcia" danych z innego serwera na ten z backupami, gdyż to daje nam większą pewność że kopie nie zostaną usunięte przez ewentualnego napastnika o ile dobrze zabezpieczymy serwer do backupów i nie będzie do niego dostępu z poziomu serwera na którym mamy pliki do skopiowania. Dzięki temu nawet jak ktoś wyczyści nam serwer to mamy jeszcze drugi serwer z kopiami zapasowymi i możemy wszystko łatwo przywrócić. Uwzględniam tu nice i ionice aby zmniejszyć priorytet CPU i dysku.

rdiff-backup --remote-schema 'ssh %s -p 22 ionice -c3 nice -19 rdiff-backup --server' --exclude /home/niepotrzebny_folder root@waznyserwer::/home/ /home/backup/

Ponownie ostrzegam, kod nietestowany - trochę z pamięci, trochę z notatek.