数据库备份并分离日志表(按月)sh 脚本
时间:2021-07-01 10:21:17
帮助过:5人阅读
year=`
date +%
Y`
month=`
date +%
m`
day=`
date +%
d`
hour=`
date +%
H`
dir=
"/data/dbbackup/file" #备份路径
#db数据备份
db_sqlname=
"db_bk.sql" #备份成的文件名
db_sqlnamelog=
"db_bklog.sql" #备份成的文件名
db_host=
"127.0.0.1" #数据库主机
db_user=
"" #数据库用户名
db_passwd=
"" #数据库密码
db_dbname=
"threecards" #数据库名
mkdir $
dir/$db_dbname
"-"$year$month$day$hour #创建备份路径
bkdir=$
dir"/"$db_dbname
"-"$year$month$day$hour
ignore=
"--ignore-table="$db_dbname
"."
ignore_log_credit=$ignore
"log_credit" #忽略两个按月份拆表的log
ignore_log_table=$ignore
"log_table"
db_log=
"log_credit log_table" #忽略两个按月份拆表的log表名
count=$((($year-
2015)*
12+$month-
4))
for i
in $(
seq $count)
do
syear=$((($i+
3)/
12+
2015))
smonth=$(($i+
4-($syear-
2015)*
12))
if [ $smonth -ge
10 ]
then
smonth=
$smonth
else
smonth=
0$smonth
fi
log_credit=$ignore
"log_credit_"$syear$smonth
log_table=$ignore
"log_table_"$syear$smonth
ignore_log_credit=$ignore_log_credit
" "$log_credit
ignore_log_table=$ignore_log_table
" "$log_table
db_log=$db_log
" log_credit_"$syear$smonth
" log_table_"$syear$smonth
" "
done
ignore_log=$ignore_log_table
" "$ignore_log_credit
echo "main db backup start"
/usr/bin/mysqldump $ignore_log -h$db_host -u$db_user -p$db_passwd $db_dbname $db_tbname > $bkdir/
$db_sqlname
echo "log db backup start"
echo $db_log
/usr/bin/mysqldump -h$db_host -u$db_user -p$db_passwd $db_dbname $db_tbname $db_log> $bkdir/
$db_sqlnamelog
echo "Delete expired file"
find $
dir -type f -mtime +
5 -exec
rm -
f {} \; #清除5天前过期备份
echo "tar"
cd $bkdir
tar -zcvf $bkdir
".tar.gz" ./
echo "delete"
rm -rf $bkdir
数据库备份并分离日志表(按月)sh 脚本
标签: