Shell脚本-----自动备份Mysql数据库
脚本的整体思路
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 {} \;
本文出自 “悬剑” 博客,请务必保留此出处http://sublime.blog.51cto.com/8856101/1535990
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。