Skip to content

使用 crontab 制定定时任务

目标

  1. 每分钟清理当前分钟之前的图片。 [可选]
  2. 每小时清理当前小时之前的图片。 [可选]
  3. 每天清理当前日期之前的图片。 [可选]

环境

  • 操作系统:Ubuntu 22.04 (jetson)
  • 需要清理的文件夹:/home/nvidia/install/Snapshot

步骤

1. 编写清理脚本

  1. 创建清理脚本

    bash
    sudo gedit /home/nvidia/install/cleanup_images.sh
  2. 编辑脚本,输入以下内容:(可选就是选择其中一个,不需要的注释起来)

    bash
    #!/bin/bash
    
    # 设置日志文件路径
    LOG_FILE="/home/nvidia/install/cleanup_images.log"
    
    # 获取当前日期和时间
    CURRENT_DATE=$(date +%Y-%m-%d)
    CURRENT_HOUR=$(date +%H)
    CURRENT_MINUTE=$(date +%M)
    
    # 每分钟清理当前分钟之前的图片 [可选]
    find /home/nvidia/install/Snapshot -type f -name "*.jpg" -mmin +1 -exec rm -f {} \;
    echo "$(date): Cleaned up images older than $CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE (minute)" >> $LOG_FILE
    
    # 每小时清理当前小时之前的图片 [可选]
    find /home/nvidia/install/Snapshot -type f -name "*.jpg" -mmin +60 -exec rm -f {} \;
    echo "$(date): Cleaned up images older than $CURRENT_DATE $CURRENT_HOUR:00 (hour)" >> $LOG_FILE
    
    # 每天清理当前日期之前的图片  [可选]
    find /home/nvidia/install/Snapshot -type f -name "*.jpg" -mtime +1 -exec rm -f {} \;
    echo "$(date): Cleaned up images older than $CURRENT_DATE 00:00 (day)" >> $LOG_FILE
  3. 保存并关闭编辑器

  4. 使脚本可执行

    bash
    sudo chmod +x /home/nvidia/install/cleanup_images.sh

2. 编辑 crontab 文件

  1. 使用 vim 编辑 crontab 文件

    bash
    EDITOR=vim crontab -e
  2. 添加多种清理任务: (可选就是选择其中一个,不需要的注释起来)

    bash
    # 每分钟清理当前分钟之前的图片  [可选]
    * * * * * /home/nvidia/install/cleanup_images.sh
    
    # 每小时清理当前小时之前的图片  [可选]
    0 * * * * /home/nvidia/install/cleanup_images.sh
    
    # 每天清理当前日期之前的图片   [可选]
    0 0 * * * /home/nvidia/install/cleanup_images.sh
  3. 保存并退出

    • Esc 键进入命令模式。
    • 输入 :wq 保存并退出。

3. 验证 cron 任务

  1. 检查 cron 任务是否已添加

    bash
    crontab -l

    你应该能看到类似以下的输出:

    * * * * * /home/nvidia/install/cleanup_images.sh
    0 * * * * /home/nvidia/install/cleanup_images.sh
    0 0 * * * /home/nvidia/install/cleanup_images.sh
  2. 检查 cron 日志,确保定时任务已成功执行:

    bash
    sudo tail -f /home/nvidia/install/cleanup_images.log

    预期输出

    • 你应该能看到 cron 任务的执行日志。
  3. 检查清理日志,确保脚本已成功执行:

    bash
    cat /home/nvidia/install/cleanup_images.log

    预期输出

    • 你应该能看到类似以下的记录:
      2024-11-19 15:01:00: Cleaned up images older than 2024-11-19 15:00 (minute)
      2024-11-19 15:00:00: Cleaned up images older than 2024-11-19 14:00 (hour)
      2024-11-19 00:00:00: Cleaned up images older than 2024-11-18 00:00 (day)

© 2025 技术博客. All rights reserved by 老周有AI