ďťż
 
 
   Cykliczny backup serwera
 
 

Tematy

 
    
 

 

 

 

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis