脚本的整体思路
1.定义需要的变量
2.利用for循环备份需要备份的库,并以库名-当天日期.sql命名,并记录相关日志
3.建立备份当天的日期的目录,向备份的Sql文件移动到该目录
4.压缩打包该目录,以节省空间,打包成功后删除该目录
5.备份目录只备份七天的数据库,第八天删除第一天的备份,目录只会存在连续七天的备份文件
6.查找备份目录下的.log日志文件,超过七天的删除
#!/bin/bash mysql_bin=/usr/local/tdoa/mysql/bin/mysqldump user=root passwd=myoa888 mysql_back=/mysql-back date=$(date +%F) for i in td_oa td_oa_archive bus crscell do $mysql_bin -u$user -p$passwd $i >> $mysql_back/$i-$date.sql if [ $? -eq 0 ];then echo -e "$date $i Back Success\n" >> $mysql_back/back.log else echo -e "$date $i Back Failure\n" >> $mysql_back/error.log fi done cd $mysql_back if [ ! -d $date ];then mkdir $mysql_back/$date mv $mysql_back/*.sql $mysql_back/$date else mv $mysql_back/*.sql $mysql_back/$date fi tar -czf mysql-$date.tar.gz $date rm -r $mysql_back/$date find $mysql_back -name \*.gz -type f -mtime +6 -exec rm {} \; find $mysql_back -name \*.log -type f -atime +6 -exec rm {} \;
Shell脚本-----自动备份Mysql数据库,布布扣,bubuko.com
时间: 2024-10-21 00:38:59