一、mysql備份
備份shell腳本
# 文件夾
bakFolder=備份根目錄
# 數(shù)據(jù)庫
dbName=數(shù)據(jù)庫名稱
# 連接配置
mysqlConnectConf=連接配置文件
# 需要排除的表
exclusiveTables=(
表1
表2
)
inArr () {
for e in ${exclusiveTables[@]}; do
if [[ $e == $1 ]]; then
return 1
fi
done
return 0
}
# 取出所有的表
tables=$(mysql --defaults-extra-file=$mysqlConnectConf -e "SHOW TABLES")
dateFolder=$bakFolder/`date +%Y%m%d`
mkdir $dateFolder
cd $dateFolder
i=0
for t in $tables; do
inArr "$t"
ret=$?
# 跳過第一個
if [[ $i -eq 0 ]] || [ $ret -eq 1 ]; then
echo "跳過 $t"
else
# 備份
# echo "備份表[$t]..."
dumpCmd="mysqldump --defaults-extra-file=$mysqlConnectConf $dbName --tables $t > $t.sql"
echo $dumpCmd
eval $dumpCmd
fi
(( i++ ))
done
echo "備份完成,存于目錄[$dateFolder]"
# 刪除1個月之前的備份
rm -f $bakFolder/*.`date -d "-2 month" +%Y%m`*
數(shù)據(jù)庫連接配置文件
[client]
user=賬號
password=密碼
host=數(shù)據(jù)庫ip或域名
port=端口
[mysql]
database=數(shù)據(jù)庫名
把備份腳本放到 /etc/cron.daily 下,就會每天自動執(zhí)行。