shell 备份数据库分表备份

37 篇文章 3 订阅

对数据库分表备份。

#!/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

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

使用效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值