写一个计划任务脚本(定时执行)

shell脚本:

#!/bin/bash

# 定义源目录和目标目录
SOURCE_DIR="/var/log"
BACKUP_DIR="/backup"

# 获取当前日期和时间,精确到秒
CURRENT_DATETIME=$(date +%Y%m%d%H%M%S)

# 构建备份文件名
BACKUP_FILE="$BACKUP_DIR/$(date +%Y%m%d%H%M%S)log.tar.gz"

# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"

# 执行备份操作
tar -czf "$BACKUP_FILE" "$SOURCE_DIR"

# 删除七天前的备份文件
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +7 -delete

解释:

  1. 定义源目录和目标目录​:

    • SOURCE_DIR="/var/log":指定要备份的源目录为 /var/log
    • BACKUP_DIR="/backup":指定备份文件存放的目标目录为 /backup
  2. 获取当前日期和时间​:

    • CURRENT_DATETIME=$(date +%Y%m%d%H%M%S):获取当前的日期和时间,精确到秒。
  3. 构建备份文件名​:

    • BACKUP_FILE="$BACKUP_DIR/$(date +%Y%m%d%H%M%S)log.tar.gz":构建备份文件名,格式为 YYYYMMDDHHMMSSlog.tar.gz
  4. 创建备份目录(如果不存在)​​:

    • mkdir -p "$BACKUP_DIR":确保目标目录存在,如果不存在则创建。
  5. 执行备份操作​:

    • tar -czf "$BACKUP_FILE" "$SOURCE_DIR":使用 tar 命令将 /var/log 目录下的所有文件打包并压缩成 .tar.gz 格式,保存到指定的备份文件中。
  6. 删除七天前的备份文件​:

    • find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +7 -delete:使用 find 命令查找 /backup 目录下所有扩展名为 .tar.gz 且修改时间在七天前的文件,并将其删除。

最后一步:

为了确保脚本每天在 02:30 自动执行,你可以将以下内容添加到系统的 crontab 中:

  1. 打开 crontab 编辑器:

    crontab -e
  2. 添加以下行:

    30 2 * * * /path/to/backup_log.sh

    其中 /path/to/backup_log.sh 是 backup_log.sh 脚本的实际路径。

保存并退出编辑器后,系统会按照设定的时间自动执行备份脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值