每小时备份数据库 并且删除2个小时前的备份

每小时的半点执行sh脚本
30 */1 * * * /home/bk.sh

以数据库 : test_db为例
bk.sh:

 db_pass=""
mysqldump -uroot -p${db_pass}  --databases test_db| gzip > /home/backup/test_$(date +%Y%m%d_%H%M).sql.gz
find /home/backup/ -name "test_*.sql.gz" -type f -mmin +120 -exec rm {} \; > /dev/null 2>&1
为了实现 MySQL 数据库每半小时自动备份一次,可以通过 Linux 的定时任务工具 `crontab` 来实现。具体操作包括编写备份脚本和配置定时任务。 ### 编写备份脚本 首先,创建一个用于备份的脚本文件,例如 `/home/mysqlbak/bakmysql.sh`,并赋予其可执行权限。脚本内容如下: ```bash #!/bin/bash # 备份脚本 # 数据库用户名 login_user="root" # 数据库密码 login_passwd="your_password" # 获取当时间戳 vDate=$(date +%Y%m%d%H%M) # 备份目录 backup_dir="/home/mysqlbak/backups/$vDate/" # 创建备份目录 if [ ! -d "$backup_dir" ]; then mkdir -p "$backup_dir" fi # 需要备份数据库列表 db_array=("dbname1" "dbname2" "dbname3") # 备份每个数据库 for db_name in "${db_array[@]}" do mysqldump -u$login_user -p$login_passwd $db_name > $backup_dir$db_name.sql done # 删除7天备份文件 find /home/mysqlbak/backups/ -atime +7 -name "*.sql" -exec rm -rf {} \; ``` 确保脚本具有执行权限: ```bash chmod +x /home/mysqlbak/bakmysql.sh ``` ### 配置定时任务 使用 `crontab -e` 命令编辑定时任务列表,并添加以下行以实现每半小时执行一次备份脚本: ```bash 0,30 * * * * /home/mysqlbak/bakmysql.sh ``` 此命令表示在每小时的第 0 分钟和第 30 分钟执行一次备份脚本。 ### 注意事项 - **数据库密码安全**:在脚本中直接使用明文密码存在安全隐患,建议使用 MySQL 的配置文件或环境变量来管理敏感信息。 - **备份文件存储**:定期检查备份目录的空间使用情况,避免因磁盘空间不足导致备份失败。 - **备份验证**:建议定期验证备份文件的完整性和可恢复性,确保在需要时可以成功恢复数据[^4]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值