Loading

定时删除指定路径下的文件夹和文件

定时删除指定路径下的文件夹和文件

定时删除路径下名为 log1log2 的文件夹中以 "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

说明

  • 第一部分和第二部分:分别删除 log1log2 目录下以 "2024" 开头的文件夹及其所有内容。
  • 第三部分和第四部分:分别删除 log1log2 目录下最近 30 分钟内修改过的文件。

2. 设置定时任务

使用 cron 定时任务来每小时执行这个脚本:

  1. 执行 crontab -e 编辑用户的 cron 表。

  2. 添加以下一行,指定每小时执行一次清理任务:

    0 * * * * /path/to/cleanup_script.sh
    
    • 0 * * * * 表示每小时的第 0 分钟执行一次。
  3. 保存 cron 表并退出编辑器。

注意事项:

  • 确保脚本文件有执行权限 (chmod +x cleanup_script.sh 可赋予执行权限)。
  • 确保路径和文件夹名称正确,并且脚本中的命令不会误删重要文件。
  • 定时任务执行时间根据实际需求调整,可以根据具体情况进行更改。
posted @ 2024-06-23 00:24  夷某蓁  阅读(1221)  评论(0)    收藏  举报