MYSQL 自动备份脚本
时间:2021-07-01 10:21:17
帮助过:20人阅读
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执行删除数据库的脚本
MYSQL 自动备份脚本
标签:距离 备份 自动 tab mysq mod 错误 分数 mysql