使用shell脚本,实现定时任务备份数据

要求:每天凌晨01:00,自动导出MySQL数据库中【databaseName】的备份,文件名为"EXPORT"或日期格式(如2023-11-01)。备份文件保存在 “/path/to/d/dataBackup” 文件夹中。为避免冗余数据,导出数据保存30天,生成备份数据文件同时删除掉30天前的备份数据。

#!/bin/bash  
  
# 数据库连接信息  
DB_HOST="localhost"  
DB_USER="用户名"  
DB_PASS="密码"  
DB_NAME="数据库"  
  
# 备份路径和文件名  
BACKUP_DIR="/path/to/d/dataBackup"  # 根据你的实际情况进行更改  
BASE_FILE_NAME="EXPORT"  
DATE=$(date +%Y-%m-%d)  
BACKUP_FILE="${BASE_FILE_NAME}_${DATE}.sql"  # EXPORT_2023-11-01.sql
  
# 创建备份文件夹(如果不存在)  
mkdir -p $BACKUP_DIR  
  
# 备份数据库  
mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$BACKUP_FILE  
  
# 删除30天前的备份文件  
find $BACKUP_DIR -type f -mtime +30 -exec rm {} \; 

保存并关闭文件后,为脚本添加可执行权限:

chmod +x backup.sh

最后,设置一个cron任务来每天凌晨2点运行此脚本:

crontab -e

然后在打开的编辑器中添加以下行:

0 1 * * * /path/to/d/dataBackup/backup.sh
  • 0 表示分钟,也就是说在每个小时的第0分钟。
  • 1 表示小时,也就是说在每天的第1小时,也就是凌晨0点。
  • * 表示日,这里的星号代表了所有的日,也就是说每天。
  • * 表示月,这里的星号也代表了所有的月,表示每个月。
  • * 表示星期,星号代表了所有的星期,也就是每周。

注意:这里为实际脚本文件的路径

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值