mysql备份脚本

这两段bash脚本展示了如何自动备份MySQL数据库并根据设定的过期天数删除旧备份。脚本首先创建当前时间戳标记的.sql备份文件,然后压缩为.tar.gz,最后根据expire_days变量删除超过保留期限的备份。第二个脚本使用docker执行相同操作,并针对docker容器中的MySQL实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
# 备份文件存放地址(根据实际情况填写)
backup_dir=/opt/safeweb/deployment/data/mysql_bak
# 是否删除过期数据
expire_backup_delete="ON"
# 过期时间设置
expire_days=30
#备份时间
dd=`date +%Y-%m-%d-%H-%M-%S`
# 备份指定数据库中数据
mysqldump -umonitoring_user -p"6wfPNxdxjdfhyzfttnvicfaxm0xajoe_" --all-databases >/$backup_dir/mysql_bak.$dd.sql
cd $backup_dir
tar -czf mysql-$dd.tar.gz mysql_bak.$dd.sql
rm -f mysql_bak.$dd.sql
#删除备份的数据
find ${backup_dir} -mtime +${expire_days} -name "mysql_bak*" -exec rm -rf {} \;


#!/bin/bash
storagedays=7
logdate=`date -d yesterday +"%F"`
mysql_backpu_path=/opt/safeweb/deployment
mysql_id=`docker ps | grep mysql | awk '{print $1}'`
#########备份数据库#############
echo "# Time: `date "+%FT%T"`.000000Z" >> ${mysql_backpu_path}/data/mysql-log/mysql-slow.log
if [ ! -d ${mysql_backpu_path}/data/mysql_bak ];then
   mkdir -p ${mysql_backpu_path}/data/mysql_bak
fi
cd ${mysql_backpu_path}/data/mysql_bak
if [[ "mysql_id" != "" ]];then
   docker exec -it ${mysql_id} mysqldump -umonitoring_user -p"6wfPNxdxjdfhyzfttnvicfaxm0xajoe_" --all-databases > database-all.sql
   tar -czf mysql-${logdate}.tar.gz database-all.sql
   rm -f database-all.sql
   find ${mysql_backpu_path}/data/mysql_bak -mtime +${storagedays} -name "mysql*.gz" -exec rm -rf {} \;
#elif [[  ]]
#   mysqldump -umonitoring_user -p"6wfPNxdxjdfhyzfttnvicfaxm0xajoe_" --all-databases > database-all.sql
 #  tar -czf mysql-${logdate}.tar.gz database-all.sql
#   rm -f database-all.sql
#   find ${mysql_backpu_path}/data/mysql_bak -mtime +${storagedays} -name "mysql*.gz" -exec rm -rf {} \;
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值