MYSQL 自动备份脚本

1.编辑mysql备份脚本

vim test.sh
1 #!/bin/bash
  2 USER=ws
  3 PASSWORD=********
  4 DATABASE=ws-test1
  5 BACKUP_DIR=/root/backup           #数据库备份sql文件的绝对路径
  6 LOGFILE=/root/backup/data_backup.log     #备份数据库的脚本的日志文件
  7 DATE=`date +%Y%m%d-%H%M`    #获取当前系统时间
  8 DUMPFILE=$DATE-ws-test1.sql      #备份数据库的sql文件名
  9 ARCHIVE=$DUMPFILE-tar.gz           #备份的数据库压缩后的文件名
 10 MYHOST=118.190.184.140            #备份的数据库所在主机地址
 11
 12 if [ ! -d $BACKUP_DIR ];                   #判断路径是否存在,不存在的话创建此路径
 13 then
 14 mkdir -p "$BACKUP_DIR"
 15 fi

 16 echo -e "\n" >> $LOGFILE
 17 echo "------------------------------------" >> $LOGFILE
 18 echo "BACKUP DATE:$DATE">> $LOGFILE
 19 echo "------------------------------------" >> $LOGFILE
 20

 21 cd $BACKUP_DIR      #进入备份路径
 22 /usr/bin/mysqldump -h$MYHOST -u$USER -p$PASSWORD $DATABASE > $DUMPFILE          #使用mysqldump命令备份数据库
 23
 24 if [[ $? == 0 ]]; then
 25 tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1                             #判断是否备份成功,若备份成功,则压缩备份数据库,否则将错误日志写入日志文件中去。
 26 echo "$ARCHIVE BACKUP SUCCESSFUL!" >> $LOGFILE
 27 rm -f $DUMPFILE
 28 else
 29 echo "$ARCHIVE Backup Fail!" >> $LOGFILE
 30 fi
~                                                              

2.定期删除超过一段时间的备份
vim test2.sh
#!/bin/bash
BACKUPDIR="/root/backup"       #备份数据库sql文件的绝对路径
KEEPTIME=1       #定义需要删除的文件距离现在时间的天数 
DELFILE=`find $BACKUPDIR -type f -mtime +$KEEPTIME -exec ls {} \;`
for delfile in ${DELFILE} 
do
rm -f $delfile
done
3.编辑定时任务
crontab -e
#分 时 日(每个月的那一天1-31) 月(一年中的那个月份1 -12)周(一周中的那一天0-6,0代表周日)
00 00 * * *  sh test.sh #每天12点本分数据库
00 00 * * 1 sh test2.sh #每个周日12执行删除数据库的脚本

posted on   剩余价值  阅读(450)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示