导出数据库
创建shell脚本
root@cdh4:~/dataBak# vi backupdata.sh
脚本内容如下
backupdir=/root/dataBak/mydb
# 时间
time=_` date +%Y_%m_%d_%H_%M_%S `
# 需要备份的数据库名称
db_name=mydb
# 导出数据库,数据文件后缀为当前日期
/usr/bin/mysqldump $db_name | gzip > $backupdir/$db_name$time.sql.gz
#删除三十天之前的备份文件
find $backupdir -name $db_name"*.sql.gz" -type f -mtime +30 -exec rm -rf {} \; >> /root/dataBak/$db_name.log
给shell脚本配置执行权限
root@cdh4:~/dataBak# chmod 777 backupdata.sh
设置定时导出
root@cdh4:~/dataBak# crontab -e
定时任务,每天晚上1点执行
0 1 * * * /root/dataBak/backupdata.sh >> /root/dataBak/backupdataCrontab.log
同步数据文件
将导出的数据文件备份到其他机器的/root/mydb/路径下,前提是两个机器已经配置好了免密登录
创建同步脚本
root@cdh4:~/dataBak# vi rsync-db.sh
内容如下
#!/bin/bash
rsync -vae "ssh -o StrictHostKeyChecking=no" /root/dataBak/mydb/ root@xxx.xx.xx.xx:/root/mydb/
设置定时任务,每天晚上2点执行
0 2 * * * /root/dataBak/rsync-db.sh >> /root/dataBak/sendData.log