mysql自动备份脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
#!/bin/bash #定义有备份的数据库名 dbname=chengfei #定义备份数据库时使用的用户名和密码 dbuser=chengfei dbpasswd=chengfei #数据库备份的路径 backuppath=/home/chengfei/backup/mysql/ #数据库备份日志文件存储的路径 logfile=/home/chengfei/backup/log/mysql.log #以当前的时间作为备份的数据库命名。 dumpfile=$(date +%y%m%d%H%M) #这个函数用来备份数据库 back_db() { #将备份的时间、数据库名存入日志 echo "------"$(date +%Y-%m-%d%t%A%t%T)" Beginning database "${dbname}" backup--------" >>${logfile} #备份数据库,如果有错误信息也记入日志。 /usr/bin/mysqldump -u${dbuser} -p${dbpasswd} ${dbname} >${backuppath}${dumpfile}.sql 2>> ${logfile} #开始压缩数据文件 echo $(date +%Y-%m-%d%t%A%t%T)" Beginning zip ${backuppath}${dumpfile}.sql" >>${logfile} #将备份数据库文件库压成ZIP文件,并删除先前的SQL文件。如果有错误信息也记入日志。 tar zcvf ${dumpfile}.tar.gz ${dumpfile}.sql && rm ${dumpfile}.sql 2>> ${logfile} #将压缩后的文件名存入日志。 echo "backup file name:"${dumpfile}".tar.gz" >>${logfile} echo -e "-------"$(date +%Y-%m-%d%t%A%t%T)" Ending database "${dbname}" backup-------\n" >>${logfile} #发送邮件 cat ${logfile} | mutt -s "Blog数据库备份" -a ${dumpfile}.tar.gz 8chf@163.com } #这个函数用来删除七天前的数据,注意,这个脚本会删除当前目录下所有的早于七天前的文件 rm_oldfile() { #查找出当前目录下七天前生成的文件,并将之删除 find /home/chengfei/backup/mysql -type f -mtime +7 -exec rm {} \; } #切换到数据库备份的目录。如果不做这个操作,压缩文件时有可能会错误 cd ${backuppath} #运行备份数据函数 back_db #运行删除文件函数 rm_oldfile |
添加运行计划
crontab -e
00 05 * * * /home/chengfei/backup/script/backup_mysql.sh
发表评论
要发表评论,您必须先登录。