一个mysql/ target=_blank class=infotextkey>mysql数据库备份的脚本,基于环境ubuntu 10.04 server。
需求分析:
1、获取mysql服务器所有数据库名称,过滤掉不需要备份的数据库。
2、通过mysqldump来for循环导出所有的数据库的sql文件。
3、用zip加密压缩所有的sql文件。
4、定期进行数据清理工作。
1,shell/ target=_blank class=infotextkey>shell脚本实现的数据库导出代码。
2、数据定期清理脚本
作用:
定期清理14天前的备份文件
例子,shell脚本定期清理多少天前的数据库备份文件。
#!/bin/bash -
#1.参数配置
#mysql文件备份目录
backup_dir1="/backup/test1/"
backup_dir2="/backup/test2/"
backdir_arr=($backup_dir1 $backup_dir2)
#过期文件的时间
keep_time=14
#当前所在星期,crontab在奇数的星期7执行
week=$(date +%W)
flag=`expr $week % 2`
#2.清理过期文件,只在奇数星期7执行
if [ $flag -eq 1 ]; then
for dir in ${backdir_arr[*]}
do
if [ -d $dir ]; then
#查找14天之外的文件数据
clean_arr=`find $dir -type f -mtime +$keep_time -exec ls {} ;`
for cleanfile in ${clean_arr}
do
rm $cleanfile
done
fi
done
fi
将以上shell脚本,添加到crontab计划任务中:
0 5 * * 7 执行清理脚本