скрипт бэкапа freebsd, MySQL БД, директорий

скрипт бэкапа

Я столкнулся с такой проблемой, нужно забекапить конфиги, важные файлы, MySQL базу данных. Я использую FreeBSD, поискав в интернете инфу, нашел много решений, один из них — написание простого скрипта на баше или на перле.
backups.sh написанный на bash-е:

# -----------------------------------
# Created Ohalnikov Oleg
# скрипт бэкапа
# -----------------------------------
#!/bin/sh
 
DIR=/mnt/backup
DATA=`date '+%Y%m%d'`
cd $DIR
mysqldump -u root --password='*****' -l --all-databases | gzip > databases-$DATA.sql.gz
tar -czf named-$DATA.tar.gz /var/named
sync
tar -czf log-$DATA.tar.gz /var/log
sync
tar -czf etc-$DATA.tar.gz /etc
sync
tar -czf locetc-$DATA.tar.gz /usr/local/etc
sync
tar -czf www-$DATA.tar.gz /usr/local/www
sync
for file in *-$DATA.*
do
echo "$file" >> $DIR/current
done
    echo "Backup Server $DATA" | mail -s "Backup Server $DATA" nvs@8.to < $DIR/current
rm -f $DIR/current
 
find $DIR/* -mtime +7 -exec rm {} \;
 
# <<< THE-END >>>

Все длинные команды mysqldump и mail должны быть написаны в одну строку. DIR — директория с бэкапами. DATA — текущая дата в формате год/мес.день. Далее скрипт идет в папку с backup-ами и начинает дампить БД:

mysqldump ключ  —all-databass , -l — лочит базы на время выполнения дампа, —password=’Ваш_пароль_от_БД‘. После чего все данные перенаправляються в файл и архивируються databases-$DATA.sql.gz. Храним бекап 7 дней:

# find $DIR/* -mtime +7 -exec rm {} \;

Что бынезапускать постоянноэтот скрипт, удобнопрописать его в кроне и назначитьвыполнение подате (каждыйдень в 00.05 например):

# crontab -e:
# Backup
5 0 * * * /root/script/backup.sh
Если у вас в кроне не прописано в самом верху переменное окружение, желательно прописать, может не работать скритп:
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
MAILTO= nvs@8.to

Этот скрипт будет работать на любом другом Unix\Linux но нужно быть внимательным к директориям которые Вы бэкапите, они могут отличаться названием!

ВСЕ! Скрипт бэкапа создан.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.