1 创建定时任务脚本
#!/bin/bash
# 设置要删除文件的目录路径
directory="/home/data"
# 计算1分钟前的时间戳
timestamp=$(date -d "1 minute ago" +%s)
# 定义日志文件路径
log_file="/path/to/task.log"
# 清空日志文件
> "$log_file"
# 遍历目录下的文件
for file in "$directory"/*; do
# 获取文件的创建时间戳
file_timestamp=$(stat -c %Y "$file")
# 检查文件是否是1分钟前创建的
if (( file_timestamp < timestamp )); then
# 删除文件
rm "$file"
echo "已删除文件: $file" >> "$log_file"
fi
done
然后,将该脚本保存为一个可执行文件,比如delete_old_files.sh
。接着,编辑cron定时任务,将日志输出到task.log
文件中。
2 将定时任务 加到cron表中
2.1打开终端,并输入crontab -e
以编辑cron表。
2.2在打开的文件中,添加一行类似于以下内容的定时任务:
0 0 * * * /path/to/delete_old_files.sh >> /path/to/task.log 2>&1
这表示每天的午夜0点运行delete_old_files.sh
脚本,并将标准输出和标准错误重定向到task.log
文件中。
2.3保存并关闭文件。
cron将在每天0点运行该脚本,并将删除文件的操作记录到task.log
文件中。请确保替换路径为你实际的文件路径,并确保你具有足够的权限执行删除操作。