常用脚本
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 下,就会每天自动执行。