shell 備份資料庫分表備份
阿新 • • 發佈:2018-12-15
對資料庫分表備份。
#!/bin/sh # 定義資料庫連線引數 db_host=127.0.0.1 db_port=3306 db_username=root db_password=123456 #定義當前伺服器要備份的資料庫 db_name=(bajie beidailu) #定義要忽略的資料表 ignore_table=(snake_articles snake_group wxshop_admin) #獲取當前日期 today=`date +%Y-%m-%d` #定義檔案儲存目錄 backup_dir=/Users/xubin/backup #遍歷資料表 for db in ${db_name[@]}; do #獲取當前資料庫的所有表` tables=`mysql -h${db_host} -u${db_username} -p${db_password} -Bse "use $db;show tables"` for tabs in ${tables[@]} do if [[ "${ignore_table[@]}" =~ $tabs ]];then echo $tabs else dump_dir=$backup_dir/$today/$db if [ ! -d "$dump_dir" ];then mkdir -p $dump_dir fi mysqldump -u${db_username} -p${db_password} ${db} $tabs 2>/dev/null | gzip>$dump_dir/$tabs.sql.gz fi done done #清理10天之前的備份資料 cd /Users/xubin/backup rm -rf `find . -name "*" -mtime +10`
註釋:
查詢檔案更新日時在距現在時刻二天以內的檔案 find ./ -mtime -2
查詢檔案更新日時在距現在時刻二天以上的檔案 find ./ -mtime +2
查詢檔案更新日時在距現在時刻一天以上二天以內的檔案 find ./ -mtime 2
查詢檔案更新日時在距現在時刻二分以內的檔案 find ./ -mmin -2
查詢檔案更新日時在距現在時刻二分以上的檔案 find ./ -mmin +2
查詢檔案更新日時在距現在時刻一分以上二分以內的檔案 find ./ -mmin 2
這個時間是檔案的建立時間不是檔名稱
使用效果: