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执行删除数据库的脚本
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了