内容:
1、创建存放备份文件的目录
2、编写自动备份脚本(包含自动删除)
3、设置定时备份任务
备注:如需备份到其他主机,所有操作均在目标主机上操作
一、创建存放备份文件的目录
[root@A]# mkdir /home/dbback
[root@A home]# ls
dbback
二、编写自动备份/自动删除shell脚本
1、 在dback目录下新建脚本mysqlback.sh
[root@A]# vi /home/dbback/mysqlback.sh
2、编写脚本(远程与本地区别在于:-h '远程主机IP')
#!/bin/bash
#数据表自动备份脚本
# Name:bakmysql.sh
# This is a ShellScript For Auto DB Backup and Delete old Backup
#备份存放路径
backupdir=/home/dbback
#时间格式
time=` date +%Y%m%d%H `
#本地备份单个数据库(结构+数据):mysqldump路径+用户+用户密码+数据库名> $存放路径/备份包命名$时间格式
/usr/local/mysql/bin/mysqldump -u root -p密码 --databases dbname | gzip > $backupdir/dbbackname$time.sql.gz
#备份远程主机数据库
#/usr/local/mysql/bin/mysqldump -h '远程主机IP' -u root -p密码 --databases dbname | gzip > $backupdir/dbbackname$time.sql.gz
#备份多个数据库
#/usr/local/mysql/bin/mysqldump -u root -p密码 --databases 数据库1 数据库2 | gzip > $backupdir/dbbackname$time.sql.gz
#备份所有数据库(-A:结构+数据)(-A -d:只备份结构)
#/usr/local/mysql/bin/mysqldump -u root -p密码 -A -d | gzip > $backupdir/dbbackname$time.sql.gz
#删除1天前(-mtime +1)的文件
rm -rf $(find /home/dbback/ -mtime +1 -name "*.sql.gz")
3、设置脚本执行权限
[root@A]#chmod +x /home/dbback/mysqlback.sh
执行验证
[root@A dbback]#./mysqlback.sh
忽视报错,在dbback目录下生成备份文件代表脚本运行成功
三、设置定时备份任务
1、在crontab末尾加入自动执行脚本命令(每天03:15执行)
[root@A]# vi /etc/crontab
命令:15 03 * * * root /home/dback/mysqlback.sh
2、 保存退出,重启cron。
[root@A]# /etc/rc.d/init.d/crond restart
Stopping crond: [ OK ]
Starting crond: [ OK ]
3、时间设置规则
分 时 日 月 周 root/脚本路径
M: 分钟(0-59)。每分钟用*或者 */1表示
H:小时(0-23)。(0表示0点)
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
网友评论