Ранее я рассматривал скрипт для создания резервных копий баз данных мускула с помощью специально разработанного скрипта, но блин все равно юзать левый скрипт для копирования БД, хотя в исходниках если глянуть то все норм и никуда левой информации не отсылается, но мы же не ищем легких путей, и было решено попробовать сфарганить самописный скрипт для организации резервного копирования БД с помощью mysqldump, да еще и отправкой копии на фтп сервер специально выделенный для этого.
Собственно сам скрипт:
#!/bin/sh
# by username
# https://i-notes.org/
# 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, но пока что мне этого функционала хватает.