1、新建.sh文件,内容是
# encoding: utf-8 #配置参数 USER=root #数据库用户名 PASSWORD=123456 #数据库用户密码 DATABASE=cnm #数据库名称 WEBMASTER="xingyunyy@qq.com" #管理员邮箱地址,用以发送备份失败消息提醒 BACKUP_DIR=/home/HuiLife_Backup #备份文件存储路径 LOGFILE=/home/HuiLife_Backup/backup.log #日志文件路径 DATE=`date +"%Y%m%d-%H%M"` #日期格式(作为文件名) FILENAME=$DATABASE$DATE.gz #压缩文件名 OPTIONS="-u$USER -p$PASSWORD cnm | gzip " #mysqldump 参数 详情见帮助 mysqldump -help #判断备份文件存储目录是否存在,否则创建该目录 if [ ! -d $BACKUP_DIR ]; then mkdir -p "$BACKUP_DIR" fi #开始备份之前,将备份信息头写入日记文件 echo "———————————————–" >> $LOGFILE echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE #切换至备份目录 cd $BACKUP_DIR #使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件 mysqldump -u$USER -p$PASSWORD $DATABASE | gzip > $BACKUP_DIR/$FILENAME #判断数据库备份是否成功 if [[ $? == 0 ]]; then #输入备份成功的消息到日记文件 echo "[$BACKUP_DIR/$DATABASE$FILENAME] Backup Successful!" >> $LOGFILE else echo "Database Backup Fail!" >> $LOGFILE #备份失败后向网站管理者发送邮件提醒,需要mailutils或者类似终端下发送邮件工具的支持 #如果需要发邮件,且mail配置好了,就去掉下面的注释 echo "数据库备份错误,请及时检查!时间:"`date +"%Y年%m月%d日 %H点%M分"` | mail -s "Database DATABASE Daily Backup Fail" $WEBMASTER fi #输出备份过程结束的提醒消息 echo "Backup Process Done"
核心内容是:
filename=`date +%Y%m%d` /usr/bin/mysqldump -u root -proot cnm | gzip > /root/HuiLife_Backup/cnm$filename.gz
(1)邮件提醒功能依赖sendmail
2、辅助执行权限并测试
chmod +x autobackup ./autobackup
3、实现自动备份
要求安装Cron服务(定时任务管理服务器)
vi /etc/crontab
最后加入:(每天18:45执行)
45 18 * * * root /root/autobackup
Done!