Rsync backup na CentOS

4. IP routera GW-1 przydzielany z DHCP (Zmienny) Opisze tu tylko zmiany w stosunku do konfiguracji z punktu AD1 bez specjalnego opisywania tego, co już zostało omówione powyżej. Któryś z […]

4. IP routera GW-1 przydzielany z DHCP (Zmienny)

Opisze tu tylko zmiany w stosunku do konfiguracji z punktu AD1 bez specjalnego opisywania tego, co już zostało omówione powyżej.
Któryś z routerów GW-1 lub GW-2 musi mieć stały adres IP. W innym wypadku nie wiadomo gdzie wysłać backup. Oczywiście można sobie z tym poradzić korzystając z DDNS, ale ja zakładam w tym scenariuszu sytuację, w której GW-1 ma adres dynamiczny, natomiast GW-2 stały publiczny adres IP.

W tym wariancie dane będą wypychane z komputera, który nazwaliśmy serwerem i będą „lądowały” na kliencie z tą różnicą, że klient będzie rozpoczynał cały proces (odwrotnie, niż w poprzednim przypadku, gdzie serwer był inicjatorem). Odwróci się więc rola i konfiguracja serwerów, ale aby nie zmieniać już teraz nazw maszyn pozostanę przy dotychczasowej nomenklaturze.

4.1. Konfiguracja klienta

W tym scenariuszu klient udostępnia katalog, do którego będzie wgrywany backup z serwera, który chcemy backup’ować.

Na kliencie instalujemy xinetd
# yum install xinetd

Tworzymy i edytujemy plik /etc/rsyncd.conf

#vi /etc/rsyncd.conf


max connections = 2
log file = /var/log/rsync.log
timeout = 300 
 

[SyncIN]
comment = Backup Folder
path = /sciezka/do/katalogu/backupu
read only = no
list = yes
uid = nobody
gid = nobody
hosts allow = 1.2.3.4/32
auth users = Backup123456
secrets file = /etc/rsyncd.secrets

  • read only – Tym razem będziemy „wpychać” backup na klienta, musimy więc mieć możliwość zapisu

Tworzymy plik z hasłem i zabezpieczamy go przed dostępem osób niepowołanych


# echo Backup123456:moje_hasło > /etc/rsyncd.secrets
# chown root:root /etc/rsyncd.secrets
# chmod 600 /etc/rsyncd.secrets

Edytujemy plik „/etc/xinetd.d/rsync” i zmieniamy linię „disable = yes” na „disable = no”

# cat /etc/xinetd.d/rsync


service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

Sprawdzamy czy w pliku „/etc/services” jest następująca linia. Jeżeli nie – dodajemy ją.

rsync 873/tcp

Restartujemy demona xinetd

# /etc/init.d/xinetd restart

Sprawdzamy czy rsync nasłuchuje na swoim porcie


# netstat -nlp | grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 22338/xinetd

4.2. Konfiguracja serwera

Na Serwerze tworzymy skrypt wykonujący backup

#mkdir /Scripts
#vi /Scripts/sync_servers


#PUSH
/usr/bin/rsync -avz --delete /scieżka/do/danych/które/mają/być/backupowane/ Backup123456@4.3.2.1::SyncIN --password-file /Scripts/rsyncd.secret

Tworzymy i zabezpieczamy plik z hasłem:


# echo moje_hasło > /Scripts/rsyncd.secret
# chown root:root /Scripts/rsyncd.secret
# chmod 600 /Scripts/rsyncd.secret

Ustawiamy zadanie w cron’ie

0 22 * * * /Scripts/sync_servers >> /Scripts/sync_`/bin/date +\%Y\%m\%d-\%H\%M`.log

4.3. Konfiguracja routera GW-2

Identyczna jak w poprzednim przypadku routera GW-1. Zmienią się oczywiście numery IP

(config)# ip nat inside source static tcp 10.10.1.1 873 4.3.2.1 873 extendable

  • 10.10.1.1– IP Serwera w sieci wewnętrznej
  • 4.3.2.1 – Zewnętrzny adres IP routera GW-2

5. Podsumowanie

Backup będzie wykonywał się od tej chwili automatycznie. W którymś z kolejnych odcinków opiszemy jak automatycznie powiadamiać mailem o tym, że któryś z serwerów był niedostępny lub że backup z którejś maszyny nie wykonuje się poprawnie.

Aby sprawdzić czy skrypty działają poprawnie, warto uruchomić je najpierw z konsoli. Pozwoli to wychwycić błędy w konfiguracji (złe hasła, ścieżki, czy nazwy użytkowników).

Ave Lama

Strony: 1 2 3