Свой скрипт для бекапа.
Бекап — это по моему мнению, одна из самых важных задач администратора. Вы всегда будете спать спокойно по ночам зная, что где то недалеко в столе или сейфе лежит копия самых важных данных с сервера. Существуют специализированные системы бекапа, это к примеру Bacula или Amanda, они хороши тем, что работают автоматически, создают разные виды бекапов и …, довольно тяжелые. Поднимать такую систему есть смысл, когда у вас много серверов, очень большой объем данных и есть возможность выделить отдельный сервер, который будет держать систему бекапа. Если же у вас пара серверов, объем данных до десятка гигабайт, проще всего делать локальный бекап, списывая время от времени новые бекапы на диски.
Для такой ситуации я использую вот такой простой скрипт:
#!/bin/sh DATE=`date +%d%m%y` OLDATE=`/bin/date -v -7d +%d%m%y` HOSTNAME=`/bin/hostname -s` FILENAME=$HOSTNAME'-'$DATE OLDFILENAME=$HOSTNAME'-'$OLDATE BACKDIR='/home/backup' WHAT='/home/hilik/' /bin/tar --exclude *.core* -jcf $BACKDIR/$FILENAME.tar.bz2 ${WHAT} `chmod 777 $BACKDIR/$FILENAME.tar.bz2` rm -f $BACKDIR/$OLDFILENAME.tar.bz2 |
Приведенный скрипт архивирует все содержимое каталога, указанного в переменной $WHAT, имя архива формируется из имени хоста, на котором производится операция и даты. По окончании создания архива будет произведено удаление архива сделанного 7 дней назад.
Операция восстановления файлов сводится к распаковке архива за нужный день и замене поврежденных файлов. Разархивирование производится такой командой:
tar xvfj 'имя архива' |
Теперь достаточно установить скрипт в cron
crontab -e |
Например на 3 часа ночи(скрипт мы разместим в /root/bin/ и назовем backup.sh), это будет выглядеть так:
0 3 * * * /root/bin/backup.sh |
И не забывать время от времени списывать архивы на DVD диски или хотя бы на другой компьютер.