常用脚本

2023-01-09  本文已影响0人  Lnstark

一、mysql备份

备份shell脚本

# 文件夹
bakFolder=备份根目录
# 数据库
dbName=数据库名称
# 连接配置
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`*

数据库连接配置文件

[client]
user=账号
password=密码
host=数据库ip或域名
port=端口

[mysql]
database=数据库名

把备份脚本放到 /etc/cron.daily 下,就会每天自动执行。

上一篇下一篇

猜你喜欢

热点阅读