Prosty backup

Złośliwe powiedzonko informatyków głosi, że prawdziwi mężczyźni backupów nie robią. Przypomina się je tym, którzy właśnie płaczą iż stracili dane w wyniku awarii dysku. O ile w przypadku komputera domowego, wystarczy, jeśli ważniejsze dane zgrywamy od czasu do czasu na płytę, o tyle na maszynach serwerowych, gdzie zmiany są codziennie, trzeba wymyślić jakiś sposób automatycznego robienia kopi zapasowych. Nie trzeba przy tym wyważać otwartych drzwi, bo potrzebne oprogramowanie jest dostępne we wszystkich dystrybucjach linuksowych.

Robienie kopii w 3 krokach

1. Instalujemy rsync (w każdej dystrybucji będzie się to robić innym poleceniem – pacman, urpmi, apt-get, ale efekt jest ten sam), oczywiście w przypadku NND robimy to poleceniem pacman -S rsync. Po zainstalowaniu na komputerze, z którego będą robione kopie, musimy uruchomić rsync jako demona, zapewne w Waszej dystrybucji będzie już gotowy skrypt pozwalający na uruchomienie /usr/bin/rsync –daemon (w NND dopisujemy rsyncd do sekcji DAEMONS pliku rc.conf), jeśli nie musicie sobie to polecenie dopisać, np. do pliku rc.local. Jeśli zamierzamy robić kopię na odległym komputerze, musimy otworzyć na firewallu port 873, koniecznie tylko dla jednego komputera o określonym IP, w przeciwnym wypadku może się zdarzyć, że ktoś inny zrobi sobie kopię waszego serwera.
polecenie:
iptables -A INPUT -p tcp -i eth0 --dport 873 -s XXX.XXX.XXX.XXX -j ACCEPT
Nie ma tego problemu w większości przypadków, kiedy serwer backupów stawiamy w tej samej sieci, choć też lepiej się zabezpieczyć przed niepowołanym dostępem.
2. Na komputerze, na którym będą robione kopie, także instalujemy rsync, ale uruchamiac go będziemy okresowo według reguł zapisanych w cronie. W ten sposób będą nam powstawać tzw. kopie przyrostowe. Oznacza, to, że kopia będzie zawierać pliki zmienione na serwerze źródłowym, usuwać te usunięte, natomiast nie będą nadpisywane pliki, w których się nic nie zmieniło. Dzięki czemu, po pierwszym wykonaniu kopii następne czynności rsynca będa szybkie i nie będą przesyłać zbyt wielu danych.
Nie ma tez sensu robienie kopii całego systemu. Cały system możemy zbackupowac po instalacji i konfiguracji, ręcznie także zrobić kopie w przypadku aktualizacji oprogramowania, zas na co dzień wystarczy nam kopia przyrostowa katalogów z danymi (najczęściej /home), oraz katalogu plików konfiguracyjnych (/etc). W tym celu odpowiednie polecenie dopisujemy do crona.
polecenie:
20 3 * * * /usr/bin/rsync -a -z --delete-after rsync://root@192.168.1.4:873/etc /var/backup/szkola/etc
Powyższe polecenie uruchomi robienie kopii zapasowej o 3:20 w nocy z atrybutami (-a) archiwum i (-z) kompresowania w czasie przesyłania protokołem rsync z poziomu roota (możliwość zachowywania oryginalnych atrybutów plików) z komputera 192.168.1.4 (katalog /etc) do katalogu /var/backup.. na dysku lokalnym.
W moim przypadku zbieram sobie do backupu umieszczonym w katalogu szkola dane nie tylko z /etc, ale również strony www, dane użytkowników oraz pocztę.
3. Dodatkowym elementem ułatwiającym korzystanie z backupu jest skompresowanie wszystkiego do pojedynczego archiwum z datą w nazwie. Zdecydowałem się na to, aby umozliwić łatwe przegranie backupu na płytę dvd. Taka płytę robi się ręcznie, tylko w przypadku poważniejszych zmian i nie widziałem już potrzeby automatyzowania tego zadania. Natomiast codzienne robienie archiwum wykonuje skrypt, który wykonuje się również cyklicznie (należy oczywiście pamiętać, aby czas wykonywania skryptów przypadkiem się nie pokrywał)

#! /bin/sh
cd /var/backup
# wykonanie archiwum
tar zcvf /home/httpd/html/backup/szkola-`date +%y%m%d`.tar.gz szkola
# kasowanie wczorajszego, bo nie mam za dużo miejsca...
rm -f /home/httpd/html/backup/szkola-`date -d yesterday +%y%m%d`.tar.gz

Oczywiście lepiej byłoby zachować archiwa z kliku lub kilkunastu dni, ale niestety nie mam az takiej przestrzeni dyskowej, a moje archiwa mają po dwa GB danych. Mozna też archiwa podzielić i np. odpowiednim użytkownikom udostepniać określone pliki. Np. webmaster niech sam sobie przywraca kopie, jeśli coś niopatrznie skasował…
Każdy przeciez może sobie odrobinę zmodyfikować te proste regułki i skrypty. Na koniec powiem, że robienie kopii to naprawdę pożyteczny zwyczaj i może się przydać 🙂


Dodaj komentarz