MySQL скрипт для резервного копирование базы данных

Ранее я рассматривал скрипт для создания резервных копий баз данных мускула с помощью специально разработанного скрипта, но блин все равно юзать левый скрипт для копирования БД, хотя в исходниках если глянуть то все норм и никуда левой информации не отсылается, но мы же не ищем легких путей, и было решено попробовать сфарганить самописный скрипт для организации резервного копирования БД с помощью mysqldump, да еще и отправкой копии на фтп сервер специально выделенный для этого.

Собственно сам скрипт:

#!/bin/sh
# by komivlad
# http://komivlad.net/blog/
# 20011©
Date=`date +%d%m%y`
LastDay=`date -v-7d +%d%m%y`
ArcCmd="/usr/bin/tar -cjpvf"
ArcDir="/root/backup" #директория для резервных копий
City="GorodX" #город, у меня их несколько, поэтому мне удобно так )
bzip2="/usr/bin/bzip2"
mysqldump="/usr/local/bin/mysqldump"
lftp="/usr/local/bin/lftp"
user="userdb" #пользователь БД
passwd="passwddb" #пароль пользователя БД
FtpUser="backup" #пользователь фтп
FtpPass="*************" #пароль
FtpServ="**.**.**.**" #айпи сервера
email="[email protected]"
$mysqldump -u $user --password=$passwd -l --all-databases | $bzip2 -c -9 > $ArcDir/$City-DB-$Date.sql.bz2
/usr/local/bin/lftp -u $FtpUser,"$FtpPass" -e "mput  -O /$D/ $ArcDir/$City-DB-$Date.sql.bz2; rm $City-DB-$LastDay.sql.bz2; exit" $FtpServ
rm $ArcDir/$City-DB-$LastDay.tar.bz2
echo "Backup DB $City finished" | mail -s "DB $City" $email

Для работы скрипта нужен lftp:

# cd /usr/ports/ftp/lftp/ && make install clean && rehash

сохраняем скрипт и делаем его исполняемым:

# chmod +x backup.sh

добавляем в крон:

# crontab -e

например так:

0 1 * * * /root/backup_db.sh

после завершения копирования, скрипт отправит на почту сообщение, об его завершении, в последствии думаю допилить его чтобы отправлял ошибки или сами копии, как это сделано в Automysqlbackup, но пока что мне этого функционала хватает.

Поделись с друзьями:

Опубликовано 24.06.2011 в 07:25 · Автор komivlad · Ссылка
Рубрики: DataBases, MySQL · Теги: , , , , , , ,

Написать комментарий