首页 > 学院 > 操作系统 > 正文

数据库备份并分离日志表(按月)sh 脚本

2024-06-28 13:19:45
字体:
来源:转载
供稿:网友
数据库备份并分离日志表(按月)sh 脚本
#!/bin/shyear=`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$hourignore="--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_sqlnameecho "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_sqlnamelogecho "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  


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表