wtorek, 25 grudnia 2012

Backup via FTP - Skrypt Bash cz.2

Nie trzeba nikogo przekonywać do robienia kopi zapasowych ważnych dla nas danych. Dotyczy to zarówno  plików jak i naszych baz danych, szczególnie jeżeli jest ich kilka a naszego serwera używają również inni użytkownicy.
Aby zrzucić nasze pliki do archiwum użyjemy skryptu bash, po czym wyślemy go na serwer ftp, dobrze żeby był on umieszczony na innej maszynie w naszej sieci.



Do naszego archiwum dodamy wszystkie nasze bazy oraz pliki z wybranych przez nas katalogów.

1) Dane do ftp,adres mail, katalogi backapu, katalogi źródłowe, plik zbierający info z backupu:

LOGIN="naszlogin"
PASS="naszehaslo"
HOST="ip_serwera_ftp"
EMAIL="admin@serwer.pl" #zamieniamy na swój oczywiscie
DBBack="/home/backup/DBBack_$(date +%d-%m-%Y).sql" #wyglad backapu bazy
Source="home/"
DirBack="home/backup/DirBack_$(date +%d-%m-%Y).tar.gz"
AdminMessage="/root/info.txt" #tutaj umiescimy informacje z wykonania backapu

2) Optymalizacja oraz backup bazy:

mysqlcheck -u root -p naszehaslo --all-databases -o
mysqldump -u root -p naszehaslo --all-databases > $DBBack
echo "Kopia zapasowa bazy zrobiona" >> $AdminMessage

3) Dodanie katalogów z home do archiwum:

tar -czf  $DirBack $Source
echo "1) Katalog home zostal dodany do archiwum" >> $AdminMessage

4)Wysłanie kopii na ftp:

 ftp -n << EOF
 open $HOST
 user $LOGIN $PASS
 put $BDBack ./backup/DB
 put $DirBAck ./backup/Dir
 quit
 EOF
 echo "2) Pliki kopii zapasowej wysłane na: " $HOST >>; $AdminMessage

5) Usuwamy nasze archiwa z lokalnego host'a:

 rm $DBBack
 rm $Dirback
 echo "3) Lokalne kopie usuniete" >> $AdminMessage
 echo "4) Backup wykonany poprawnie" >> $AdminMessage


6) Wysłanie maila:

/usr/sbin "$MAIL" < $AdminMessage 



1 komentarz:

  1. przydałaby sie komenda bin bo wszystko wysyłane bedzie tekstowo i po backupie

    OdpowiedzUsuń