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.