对数据库分表备份。
#!/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
这个时间是文件的创建时间不是文件名称
使用效果: