mysql定时备份脚本
项目集群搭建完成,数据库虽有做主从同步,但考虑到数据安全性,为了满足这个需求那么要每天对数据备份处理,但每天手动进行备份处理太过于被动,而且白天用户访问,会有数据变化以及在备份时会影响服务器正常运行的性能,所以考虑写一个脚本,并制定一个定时任务进行执行脚本备份数据。
#!/bin/bash ###数据库定时备份,并将备份的库进行打包压缩 user=root passwd=123456 back_path=/vdb1/mysql/backup data_name=zmq123 date=`date +%Y%m%d` mkdir $back_path/$date mysqldump -u $user -p$passwd $data_name |gzip > $back_path/$date/$data_name.sql.gz
#定时任务,计划在每天晚上23点55分进行数据备份
55 23 * * * . /vdb1/mysql/mysqldump.sh
当运行了一段时间后,发现备份的数据有些占磁盘空间的,而我要保存的只是最近一月的数据就可以了,所以将这个脚本进行升级,在可能没有人注意的情况下,而磁盘不会被备份数据占满。
###升级版每天晚上11:55分进行定时备份, #!/bin/bash year=`date +%Y` month=`date +%m` day=`date +%d` backpath=/vdb1/mysql/backup/$year$month/ user=root passwd=123456 dataname=zmq123 [ -d $backpath ] || mkdir -p $backpath rq=`date +%Y%m%d` mysqldump -u $user -p$passwd $dataname|gzip >$backpath/$rq.sql.gz
#定时任务
55 23 * * * . /vdb1/mysql/mysqldump.sh
########每月2号晚上11:30进行定时删除上个月备份数据
#!/bin/bash year=`date +%Y` month=`date +%m` month=`expr $month – 1` if [ $month -eq 0 ];then month=12 day=31 year=`expr $year – 1` fi if [ $month -lt 10 ];then pre=0 fi backdir=/vdb1/mysql/backup/$year$pre$month rm -rf $backdir #删除上一个月的数据
##定时任务
30 23 2 * * . /vdb1/mysql/delmysqlbak.sh
OK!编写完成,先运行段时间看下吧!有情况再进行改进;
转自:https://www.cnblogs.com/free-long/p/6646621.html
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。