|
Cykliczny backup serwera
Kamcio - 13-11-2007 10:04
Witajcie,
wprawdzie znalazlem kilka tematow nt. robienia kopii zapasowych, jednakze nie odpowiedzialy one w 100% na moje pytania. Otoz mam sobie serwer, na ktorym jest apache, mysql, postfix. Poszukuje jakis program, ktory by automatycznie robil raz w tygodniu backupy calego twardego dysku, tzn. ze jak padnie mi np. twardy dysk to "jedynie" bede musial tym programem przegrac na dany dysk kopie zapasowa i wszystko bedzie po staremu (cos ala Norton Ghost dla Windowsa). Pliki chcialbym aby byly zapisywane na innym komputerze w lokalnej sieci. Gdyby dany program po dokonaniu kopii wylaczal/restetowal komputer to dopiero bylbym zadowolony :-)
Z gory dziekuje Wam za pomoc
kuchar - 13-11-2007 10:21
jakiś prosty skrypcik z rsync powinien wystarczyć
gorson - 13-11-2007 11:46
http://debian.linux.pl/viewtopic.php?t=439
Kamcio - 13-11-2007 23:06
Dzieki Gorson,
a mozecie mi pomoc i powiedziec jaka mam podac sciezke jesli kopia zapasowa ma byc zapisywana na innym komputerze o IP 192.168.0.20 w katalogu backup?
thalcave - 13-11-2007 23:24
Kamcio, możesz pierw zapisać backup na lokalnym kompie a potem skryptem poniższym przenieść plik: #!/bin/bash scp ~/plik.backupu user@192.168.0.20:/backup/ rm ~/plik.backupu
Ale na tym komputerze 192.168.0.20 musisz mieć ssh zainstalowane.
Kamcio - 14-11-2007 08:14
Tylko ze ten komputer Thalcave to NAS... jak juz to moglbym przez ftp, ssh odpada.
chyl-o - 14-11-2007 13:39
Mało eleganckie, ale nie mam czasu poprawić. Działa, bo robię tym kopie zapasowe baz danych i wysyłam na oddzielny serwer backupa:
# Tworzenie kopii zapasowej baz:
# Aktualna data month=`date +%m` day=`date +%d` year=`date +%y`
user="nazwaUsera" lokalnyFTP="/var/www/web3/html/logi"
echo -e "Kopiuje bazy, prosze czekac...\n" `cp -R /var/lib/mysql ./`
echo -e "Pakuje bazy, prosze czekac...\n" `tar -c mysql > mysql.tar`
echo -e "Kompresuje bazy, prosze czekac...\n" `gzip -cv mysql.tar > mysql.$day.$month.$year.tar.gz`
# Nazwa aktualnej bazy aktualnaKopia="mysql.$day.$month.$year.tar.gz"
# Ustawianie praw dostepu( odkomentowac jesli konieczne i ustawic odpowiedniego uzytkownika w zmiennej user ) # echo -e "Ustawiam prawa dostepu\n" # `chown $user:$user $aktualnaKopia`
# Przenoszenie kopii na lokalny serwer ftp( odkomentowac jesli konieczne, lub zmienic mv na cp jesli ma byc wykonane kopiowanie na lokalny ftp ) #echo -e "Przenosze kopie na lokalny serwer ftp...\n" #`mv $aktualnaKopia $lokalnyFTP/` #`cp $aktualnaKopia $lokalnyFTP/`
# To na koncu jest i nie uzywac tych opcji!!! #echo "Usuwam niepotrzebne pliki..." #`rm -fr mysql mysql.tar`
# odczyt z pliku
exec 6<backupConfig i=0 # No ta linijke zostawiam zeby straszyc swoje dzieci, k***** jak mozna przypisac do zmiennej wartosc ktora jeszcze nie jest nawet zdefiniowana... ? # doUsuniecia=${tab[0]}
# Troche duzo tych petli, ale to w nastepnej wersji poprawie... while read -u 6 dane do tab[$i]=$dane i=$((i+1)) done
i=-1 doUsuniecia=${tab[0]}
for x in ${tab[@]} do i=$((i+1)) temp[$i]=$x done
i=$((i+1)) temp[$i]=$aktualnaKopia
exec 6<&-
# zamiana i zapis
exec 6>backupConfig
i=-1 j=0
for x in ${tab[@]} do i=$((i+1)) j=$((j+1)) tab[$i]=${temp[$j]} done
i=-1
for x in ${tab[@]} do echo "$x" >> backupConfig echo "$x " done
exec 6<&-
# Po wykonaniu operacji plikowych mozna zabrac sie za usuwanie i uploadowanie tego co trzeba # na zdalny serwer ftp. Co nas interesuje jest juz w zmiennych $aktualnaKopia oraz $doUsuniecia # Najpierw usuwamy najstarszy plik, nastepnie uploadujemy najnowsza kopie. to na dole to debug # echo -e "$doUsuniecia <- ten plik ma usunac \n" { echo -e "USER user\nPASS haslo\nCWD katalogKopii\nDELE $doUsuniecia\n" echo "QUIT" } | nc serwerBackupHost 21
# Uploadowanie odpowiedniego pliku echo -e "Lacze sie z ftp...\n"; `ncftpput -u user -p haslo serwerBackup(host) /bazy $aktualnaKopia`
# Na koniec usuwanie niepotrzebnych plikow( mysql, mysql.tar, mysql.tar.gz, ta najstarsza kopia ) echo -e "Sprzatam po sobie...\n" `rm -fr mysql mysql.tar $doUsuniecia`
I backupConfig(nazwy plikow do podmieniania ):
mysql.29.09.07.tar.gz mysql.30.09.07.tar.gz mysql.01.10.07.tar.gz
Mam nadzieję że się przyda, do robienia kopii oddzielnych katalogów analogicznie.
loleq - 14-11-2007 20:11
Zastanowiłbym się nad dd i AoE.
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|