STANPOL
Backup bazy danych
A to przykładowy skrypt który robi kopię danych z /etc i /home na podmontowany dysk serwera o nazwie "pokrzywa":
Na początek sprawdzamy, czy dysk jest podmontowany. Jeśli nie, czekamy 5 sekund, bo może serwer dopiero się uruchamia po awarii zasilania i sprawdzamy ponownie.
Jeśli nadal dysk nie jest podmontowany, rezygnujemy z backupu, żeby nie przepełnić lokalnego filesystemu.
Jeśli dysk sieciowy jest podmontowany, tworzymy nazwę pliku z kopią zawierającą aktualną datę, wykonujemy kopię komendą tar, przenosimy ją na podmontowany dysk sieciowy:
mount |grep -q pokrzywa || mount -a sleep 5 mount |grep -q pokrzywa && { cd /home/automaty NAZWA=home_etc`date +%d%m%Y`.gz echo poczatek `date` $NAZWA>>log tar -czf $NAZWA /home/* /etc/* --exclude /home/automaty mv $NAZWA /pokrzywa/kopie_irys >/dev/null 2>&1 echo koniec `date` $NAZWA>>log echo __________________________ >>log echo }
Aby nasze dyski nie zapychały się starymi kopiami, codziennie uruchamiamy skrypt, który kasuje kopie starsze niż 10 dni:
cd /home/kopie find . -mtime +10 -name "*.gz" -exec rm -f {} \;
Robimy to programem cron, to przykładowe wpisy w pliku /etc/crontab:
01 01 * * * root /home/automaty/kasuj_stare 55 02 * * * root /home/automaty/dump_danych
Codziennie w nocy o godzinie 01:01 kasowane są stare kopie, a o godzinie 02:55 robiona jest najnowsza kopia.