定时删除指定路径下的文件夹和文件
定时删除指定路径下的文件夹和文件
定时删除路径下名为 log1 和 log2 的文件夹中以 "2024" 开头的子文件夹及其内容,并保留最近 30 分钟内修改过的文件:
1. 编写定时清理脚本
创建一个名为 cleanup_script.sh 的脚本文件,其内容如下:
#!/bin/bash
# 删除 log1 目录下以 "2024" 开头的文件夹及其内容
find /path/to/log1 -mindepth 1 -maxdepth 1 -type d -name "2024*" -exec rm -rf {} \;
# 删除 log2 目录下以 "2024" 开头的文件夹及其内容
find /path/to/log2 -mindepth 1 -maxdepth 1 -type d -name "2024*" -exec rm -rf {} \;
# 保留最近 30 分钟内修改过的文件(log1)
find /path/to/log1 -type f -mmin +30 -delete
# 保留最近 30 分钟内修改过的文件(log2)
find /path/to/log2 -type f -mmin +30 -delete
说明:
- 第一部分和第二部分:分别删除
log1和log2目录下以 "2024" 开头的文件夹及其所有内容。 - 第三部分和第四部分:分别删除
log1和log2目录下最近 30 分钟内修改过的文件。
2. 设置定时任务
使用 cron 定时任务来每小时执行这个脚本:
-
执行
crontab -e编辑用户的cron表。 -
添加以下一行,指定每小时执行一次清理任务:
0 * * * * /path/to/cleanup_script.sh0 * * * *表示每小时的第 0 分钟执行一次。
-
保存
cron表并退出编辑器。
注意事项:
- 确保脚本文件有执行权限 (
chmod +x cleanup_script.sh可赋予执行权限)。 - 确保路径和文件夹名称正确,并且脚本中的命令不会误删重要文件。
- 定时任务执行时间根据实际需求调整,可以根据具体情况进行更改。

浙公网安备 33010602011771号