Linux下使用shell脚本,结合crontab,定时备份MySQL下多个数据库,每次备份的数据存放于以日期命名的文件夹中,同时删除超过设定的备份保留时间的数据。 以下例子设定备份保留时间为1个月(-1month),可根据需求修改 #! /bin/bash # MySQL用户 user="root" # MySQL密码 userPWD="123456" # 需要定时备份的数据表列表 dbNames=(db_test1 db_test2 db_test3 db_test4 db_test5) # 每次的备份数据以日期创建文件夹存放,同时删除过期备份 # 此处以保留1个月的备份数据为例 DATE=`date -d "now" +%Y%m%d%H` ODATE=`date -d "-1 month" +%Y%m%d%H` newdir=/data/backup/$DATE olddir=/data/backup/$ODATE # 删除过期备份数据 if [ -d $olddir ]; then rm -rf $olddir fi # 创建新备份文件夹 mkdir $newdir # 对备份数据库列表的所有数据库备份 for dbName in ${dbNames[*]} do dumpFile=$dbName-$DATE.sql.gz mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFile done crontab 基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 输入命令crontab -e 编辑crontab脚本,编辑完成后保存退出 service crond restart 重新启动服务即可 例:(假如上面备份脚本保存路径为/data/backup.sh) 0 0,8,16 * * * /data/backup.sh #每天8时和16时执行备份 注:请确保备份数据保存的文件夹具有可写权限
文章来源 CODETC,欢迎分享,转载请注明地址:
http://www.codetc.com/article-30-1.html
|