linux 下 mysql自动备份脚本

服务器上有N个数据库  现在需要备份其中的5个数据库

随性写了个  仅供参考

-- 每天自动备份

db_user="root"

db_passwd="pwd"
time="$(date "+%Y%m%d")"
mysql="/app/mysql/bin/mysql"

mysqldump="/app/mysql/bin/mysqldump"

backup_dir="/app/db_backup"

backup_log_dir="/app/db_backup/log"

dump_time=`date '+%Y%m%d%H%M%S'`
all_db="$($mysql -u$db_user -p$db_passwd -Bse 'show databases;')"
for db in $all_db
do
if [ "$db" = "db_name1" ]; then
echo "$dump_time|$db" >>$backup_log_dir/dump.log 2>&1
$mysqldump -u$db_user -p$db_passwd $db > "$backup_dir/$db.$time.sql"

fi
if [ "$db" = "db_name2" ]; then
echo "$dump_time|$db" >>$backup_log_dir/dump.log 2>&1
$mysqldump -u$db_user -p$db_passwd $db > "$backup_dir/$db.$time.sql"
fi
if [ "$db" = "db_name3" ]; then
echo "$dump_time|$db" >>$backup_log_dir/dump.log 2>&1
$mysqldump -u$db_user -p$db_passwd $db > "$backup_dir/$db.$time.sql"
fi
if [ "$db" = "db_name4" ]; then
echo "$dump_time|$db" >>$backup_log_dir/dump.log 2>&1
$mysqldump -u$db_user -p$db_passwd $db > "$backup_dir/$db.$time.sql"
fi
if [ "$db" = "db_name5" ]; then
echo "$dump_time|$db" >>$backup_log_dir/dump.log 2>&1
$mysqldump -u$db_user -p$db_passwd $db > "$backup_dir/$db.$time.sql"
fi
done
gzip *sql
#解压命令 gunzip


-- 每天自动删除7天前的备份
-- rm back_up 7 days ago
cd /data/db_backup/
rm_date_format=`date -d '7 day ago' '+%Y%m%d'`

rm -f *$rm_date_format.sql.gz



然后将2个文件 放到crontab 里面定时执行就可以了、
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值