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
这个时间是文件的创建时间不是文件名称
使用效果: