Linux w biznesie arrow Wiadomości arrow Kopia lustrzana serwera WWW
 
 
 

Warto odwiedzić


Odwiedziny


Reklama

Advertisement

Advertisement










Kopia lustrzana serwera WWW PDF Drukuj Email
Oceny: / 5
KiepskiBardzo dobry 
24.05.2006.

W artykule tym pokaże, jak wykonać kopię lustrzaną naszego serwera WWW, tak aby serwer lustrzany mógł przejąć zadania głównego na wypadek awarii. W tym celu użyję narzędzia rsync, uruchamianego w CRONie co kilka minut. Pozwoli to na automatyczne wykonywanie kopii.

rsync jest narzędziem, które przesyła pliki i katalogi, przy czym jest o tyle użyteczny iż nie przesyła wszystkiego lecz tylko zmiany od ostatniego transferu. Dodatkowym atutem rsynca jest iż zachowuje prawa i właścicieli kopiowanych plików/katalogów. Zatem idealnie nadaje się do robienia kopii lustrzanych.


Strumień danych generowany przez rsync będziemy tunelować w SSH, co podniesie znacznie bezpieczeństwo transmisji. Takie rozwiązanie jest o tyle wygodne, że nie musimy dodatkowo na firewallu otwierać dodatkowego portu dla rsync, wystarczy ten dla SSH (22).

Pewnym problemem jest to iż SSH, wymaga podania hasła przez użytkownika, co uniemożliwiało by realizację tego zadania w CRONie. Rozwiązaniem jest utworzenie kluczy publicznych na serwerze źródłowym i lustrzanym co zlikwiduje pytanie SSH o podanie hasła, a o to właśnie nam chodzi.

Oznaczmy jako serwer źródłowy serwer server.example.com. Katalog /var/www z tego serwera ma być kopiowany do analogicznego na serwerze lustrzanym mirror.example.com


1. Instalacja rsync

Często narzędzie to jest instalowane z systemem, ale gdyby go nie było to trzeba zainstalować na obydwu serwerach. Np. w Ubuntu poleceniem:

apt-get install rsync


2. Tworzymy specjalnego użytkownika na serwerze źródłowym

Użytkownik (someuser) ten będzie wykorzystywany przez rsync do robienia kopii katalogu /var/www, zatem nasz użytkownik musi mieć do niego prawa odczytu. Wpisujemy zatem:

useradd -d /home/someuser -m -s /bin/bash someuser

i zmieniamy hasło:

passwd someuser


3. Test rsync

Możemy już przeprowadzić próbę ręcznego zrobienia kopii. Wpisujemy w konsoli:

rsync -avz -e ssh Ten adres e-mail jest ukrywany przed spamerami, włącz obsługę JavaScript w przeglądarce, by go zobaczyć :/var/www/ /var/www/

i powinniśmy ujrzeć:


The authenticity of host 'server1.example.com (192.168.0.100)' can't be established.
RSA key fingerprint is 32:e5:79:8e:5f:5a:25:a9:f1:0d:ef:be:5b:a6:a6:23.
Are you sure you want to continue connecting (yes/no)?

jak więc widać tunelujemy w SSH. Wpisujemy

yes

i w katalogu /var/www na mirror.example.com robi się kopia katalogu /var/www z server.example.com


4. Tworzenie kluczy na mirror.example.com

Teraz możemy przystąpić do tworzenia pary kluczy prywatnych/publicznych na mirror.example.com

Jako root wpisujemy:

mkdir /root/rsync
ssh-keygen -t dsa -b 2048 -f /root/rsync/mirror-
rsync-key

Powinieneś ujrzeć:


Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase): [press enter here]
Enter same passphrase again: [press enter here]
Your identification has been saved in /root/cron/mirror-rsync-key.
Your public key has been saved in /root/cron/mirror-rsync-key.pub.
The key fingerprint is:
68:95:35:44:91:f1:45:a4:af:3f:69:2a:ea:c5:4e:d7 root@mirror

Teraz ten klucz należy przekopiować na server.example.com. Jako root wpisujemy:

scp/root/rsync/mirror-rsync-key.pub  Ten adres e-mail jest ukrywany przed spamerami, włącz obsługę JavaScript w przeglądarce, by go zobaczyć :/home/someuser/

Klucz utworzony na serwerze lustrzanym powinien się pojawić w katalogu /home/someuser na serwerze źródłowym.


5. Konfiguracja serwera źródłowego

Przechodzimy na serwer źródłowy, jako someuser (!) i wpisujemy:

mkdir ~/.ssh
chmod 700 ~/.ssh
mv ~/mirror-rsync-key.pub ~/.ssh/
cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys
cat mirror-rsync-key.pub >> authorized_keys

te operacje dopisały zawartość mirror-rsync-key.pub do /home/someuser/.ssh/authorized_keys.

Chcielibyśmy aby połączenia z mirror.example.com mogły używać tylko rsync zatem na początku dodajemy linię: /home/someuser/.ssh/authorized_keys

command = "/home/someuser/rsync/checkrsync", from="mirror.example.com", no-port-forwarding,no-X11-forwarding,no-pty

W kolejnym kroku tworzymy skrypt /home/someuser/rsync/checkrsync, który będzie odrzucał inne operacje z mirror.example.com, niż rsync. Jego zawartość to:

#!/bin/sh
case "$SSH_ORIGINAL_COMMAND" in
*\&*)
echo "Rejected"
;;
*\(*)
echo "Rejected"
;;
*\{*)
echo "Rejected"
;;
*\;*)
echo "Rejected"
;;
*\<*)
echo "Rejected"
;;
*\`*)
echo "Rejected"
;;
rsync\ --server*)
$SSH_ORIGINAL_COMMAND
;;
*)
echo "Rejected"
;;
esac

Nadajemy mu prawo 700.


6. Testowanie rsynca na mirror.example.com

Teraz sprawdzimy czy z mirror.example.com możemy zrobić kopię katalogu /var/www z serwera źródłowego, nie będąc pytanym o hasło.

Jako root wpisujemy:

rsync -avz --delete --exclude=**/stats --exclude=**/error --exclude=**/files/pictures -e "ssh -i /root/rsync/mirror-rsync-key" Ten adres e-mail jest ukrywany przed spamerami, włącz obsługę JavaScript w przeglądarce, by go zobaczyć :/var/www/ /var/www/

Użyte opcje oznaczają:

  • delete - pliki usunięte na serwerze źródłowym mają też być usunięte na lustrzanym,

  • exclude - wskazuje maskę, dla plików/katalogów, które nie powinny być kopiowane


Powinieneś ujrzeć

receiving file list ... done
sent 71 bytes received 643 bytes 476.00 bytes/sec
total size is 64657 speedup is 90.56

bez prośby o hasło !


7. Zadanie w CRONie

dodajemy wpis do tablic CRONa, który co 5 minut będzie robił kopię lustrzaną. Wpisujemy jako root:

crontab -e

i potem:


*/5 * * * * /usr/bin/rsync -azq --delete --exclude=**/stats --exclude=**/ error --exclude=**/files/pictures -e "ssh -i /root/rsync/mirror-rsync-key" Ten adres e-mail jest ukrywany przed spamerami, włącz obsługę JavaScript w przeglądarce, by go zobaczyć :/var/www/ /var/www/


Liczba komentarzy (0) - Dodaj swój komentarz do tego artykułu...

 
« poprzedni artykuł   następny artykuł »
Komentarze

Jeszcze nie ma komentarzy - dodaj swój używając poniższego formularza...


Strona 1 z 0 ( 0 komentarze(y) )
Dodaj swój komentarz do tego artykułu...Kopia lustrzana serwera WWW ...



Copyright © 2005 - 2006
www.comgroup.pl
Przyczepy samochodowe
Pisanie programów

Search Engine Optimization