使用crontab命令实现定时删除服务器备份文件

220 阅读1分钟

1、删除文件的脚本

delBackFile.sh删除脚本的内容如下:

#!/bin/bash

# 检查是否有两个参数传入:备份文件目录路径和多少天以前
if [ $# -ne 2 ]; then
    echo "Usage: $0 <directory_path> <days>"
    exit 1
fi

dir="$1"
expire_days="$2"

# 先删除超过指定天数的文件
find "$dir" -type f -mtime +"$expire_days" -exec rm -f {} \;

# 再删除因此变为空的目录(包括子目录)
find "$dir" -depth -type d -empty -exec rmdir {} \;

echo "已完成对超过${expire_days}天的文件及相应空目录的清理工作."

2、编写定时任务

使用 crontab -e 编辑定时任务
添加如下内容:
# 每天凌晨执行删除脚本 测试环境 15天 以前的备份文件
0 0 * * * /opt/dist/delBackFile.sh /opt/dist/test/back/ 15