標籤:mysql備份指令碼
指令碼的整體思路
1.定義需要的變數
2.利用for迴圈備份需要備份的庫,並以庫名-當天日期.sql命名,並記錄相關日誌
3.建立備份當天的日期的目錄,向備份的Sql檔案移動到該目錄
4.壓縮打包該目錄,以節省空間的,打包成功後刪除該目錄
5.備份目錄只備份七天的資料庫,第八天刪除第一天的備份,目錄只會存在連續七天的備份檔案
6.尋找備份目錄下的.log記錄檔,超過七天的刪除
#!/bin/bashmysql_bin=/usr/local/tdoa/mysql/bin/mysqldumpuser=rootpasswd=myoa888mysql_back=/mysql-backdate=$(date +%F)for i in td_oa td_oa_archive bus crscelldo $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 fidonecd $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 fitar -czf mysql-$date.tar.gz $daterm -r $mysql_back/$datefind $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