定时备份MySql数据

备份数据使用到MySql自带的一个工具mysqldump

mysqldump用法

mysqldump -help
# 参数
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]

--all-databases 备份系统中所有数据库
--databases 指定至少一个数据库的名称 多个数据库名称之间用空格隔开

# 备份某个数据库
mysqldump -u root -p root --databases hoehub > ./hoehub.sql

# 备份全部数据库
mysqldump -u root -p root --all-databases > ./all_databases.sql

使用mysqldump工具定时备份

把备份语句写入脚本,用于定时备份
vim backup.sh

写入命令:

#!/bin/sh
# 备份数据
backupdir=/data/wwwroot/www.hoehub.com/dataBackup
time=` date +%Y-%m-%d%H%M%S `
db_user=root
db_pass=xx
db_name=db_xx
/usr/local/mysql/bin/mysqldump --databases $db_name -u $db_user -p$db_pass > $backupdir/$db_name-$time.sql
echo $db_name-$time.sql backup successd >> $backupdir/backup.log

如果只想保留7天内的备份,就在脚本末尾添加

find /data/wwwroot/www.hoehub.com/dataBackup/ -name "db_xx-*" -mtime +7 -exec rm -rf {} \;
echo $db_name-$time.sql deleted -mtime +7 successd >> $backupdir/backup.log

保存之后,记得给脚本授权

chmod 755 backup.sh

如需手动备份,执行:

./backup.sh
# 执行完成后,当前目录下便多了一个`.sql`文件

开启定时备份任务

crontab -e

加入定时任务

# 每晚的5:00执行备份
0 5 * * * 脚本所在目录/back.sh

加入定时任务后 最好重启一下crond服务

service crond restart
bashMySql备份crontab

我来吐槽

*

*

仅有 1 条评论

  1. 找果树

    谢谢分享 ,会一直关注博主的,内容很赞