shell 备份数据库分表备份

对数据库分表备份。

#!/bin/sh
# 定义数据库连接参数
db_host=127.0.0.1
db_port=3306
db_username=root
db_password=123456


#定义当前服务器要备份的数据库
db_name=(bajie beidailu)

#定义要忽略的数据表
ignore_table=(snake_articles snake_group wxshop_admin)

#获取当前日期
today=`date +%Y-%m-%d`
#定义文件保存目录
backup_dir=/Users/xubin/backup

#遍历数据表
for db in ${db_name[@]};
do
#获取当前数据库的所有表`
tables=`mysql -h${db_host} -u${db_username} -p${db_password} -Bse  "use $db;show tables"`
	for tabs in ${tables[@]}
	do

	if [[ "${ignore_table[@]}" =~ $tabs ]];then
		echo $tabs
	else
		dump_dir=$backup_dir/$today/$db
		if [ ! -d "$dump_dir" ];then
		mkdir -p $dump_dir
		fi
		mysqldump -u${db_username} -p${db_password} ${db} $tabs 2>/dev/null | gzip>$dump_dir/$tabs.sql.gz
	fi
	done
done

#清理10天之前的备份数据
cd /Users/xubin/backup
rm -rf `find . -name "*" -mtime +10`

注释:

查找文件更新日时在距现在时刻二天以内的文件
find ./ -mtime -2

查找文件更新日时在距现在时刻二天以上的文件
find ./ -mtime +2

查找文件更新日时在距现在时刻一天以上二天以内的文件
find ./ -mtime 2

查找文件更新日时在距现在时刻二分以内的文件
find ./ -mmin -2

查找文件更新日时在距现在时刻二分以上的文件
find ./ -mmin +2

查找文件更新日时在距现在时刻一分以上二分以内的文件
find ./ -mmin 2

这个时间是文件的创建时间不是文件名称

使用效果:

猜你喜欢

转载自blog.csdn.net/qq_24909089/article/details/83104638