MySQL自动备份

Posted yanglw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL自动备份相关的知识,希望对你有一定的参考价值。

1、创建自动备份目录与脚本

# mkdir /data/mysqlbackup/

# vi backdb.sh

加入以下脚本内容

#!/bin/bash
/usr/local/mysql/bin/mysqldump -uacm -pacm123 acmdb > /data/MySQLbackup/acmdb_$(date +%Y%m%d_%H%M%S).sql
tar czvf /data/MySQLbackup/acmdb_$(date +%Y%m%d_%H%M%S).sql.tar.gz /data/MySQLbackup/acmdb_$(date +%Y%m%d_%H%M%S).sql
sh checkexist.sh
mv /data/MySQLbackup/acmdb_$(date +%Y%m%d_%H%M%S).sql.tar.gz /data/MySQLbackup/$(date +%Y%m%d)/

第一行,注意mysqldump 指令不在root目录下,所以要给mysqldump 指令加上绝对路径。方便后续创建定时任务会找到改指令。

第二行,将导出到本地的sql脚本打包压缩,如果不压缩也可以,处于自己选择。

第三行,引入一个检查脚本,下面列出。

第四行,将未压缩的原始脚本删除。

注意为backdb.sh添加执行权限

2、添加检查脚本 

# chmod u+x backdb.sh

# vi checkexist.sh

#!/bin/bash
dire="/data/MySQLbackup/$(date +%Y%m%d)"
if [ -d "$dire" ]; then
echo "文件夹$(date +%Y%m%d)已存在,不再创建"
rm -rf /data/MySQLbackup/acmdb*.sql
else
mkdir /data/MySQLbackup/$(date +%Y%m%d)
fi

3、加入定时任务

# crontab -e

进入编辑操作,添加一下脚本的绝对路径,每分钟执行一次。

*/1 * * * * /data/MySQLbackup/acmsh/backdb.sh

查看定时任务

# crontab -l 

可以追踪/var/log/cron日志查看定时任务执行情况。

# tail -f /var/log/cron 

以上是关于MySQL自动备份的主要内容,如果未能解决你的问题,请参考以下文章

linux 自动备份mysql数据库

MySql DUMP 自动备份数据库 Shell 脚本

MySql DUMP 自动备份数据库 Shell 脚本

MySql DUMP 自动备份数据库 Shell 脚本

mysql自动备份删除5天前的备份

mysql 自动备份脚本