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

Ранее я рассматривал скрипт для создания резервных копий баз данных мускула с помощью специально разработанного скрипта, но блин все равно юзать левый скрипт для копирования БД, хотя в исходниках если глянуть то все норм и никуда левой информации не отсылается, но мы же не ищем легких путей, и было решено попробовать сфарганить самописный скрипт для организации резервного копирования БД с помощью mysqldump, да еще и отправкой копии на фтп сервер специально выделенный для этого.
Собственно сам скрипт:
LastDay=`date -v-7d +%d%m%y` |
ArcCmd="/usr/bin/tar -cjpvf" |
ArcDir="/root/backup" #директория для резервных копий |
City="GorodX" #город, у меня их несколько, поэтому мне удобно так ) |
mysqldump="/usr/local/bin/mysqldump" |
lftp="/usr/local/bin/lftp" |
user="userdb" #пользователь БД |
passwd="passwddb" #пароль пользователя БД |
FtpUser="backup" #пользователь фтп |
FtpPass="*************" #пароль |
FtpServ="**.**.**.**" #айпи сервера |
$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 |
сохраняем скрипт и делаем его исполняемым:
добавляем в крон:
например так:
0 1 * * * /root/backup_db.sh |
после завершения копирования, скрипт отправит на почту сообщение, об его завершении, в последствии думаю допилить его чтобы отправлял ошибки или сами копии, как это сделано в Automysqlbackup, но пока что мне этого функционала хватает.