使用 crontab 制定定时任务
目标
- 每分钟清理当前分钟之前的图片。 [可选]
- 每小时清理当前小时之前的图片。 [可选]
- 每天清理当前日期之前的图片。 [可选]
环境
- 操作系统:Ubuntu 22.04 (jetson)
- 需要清理的文件夹:
/home/nvidia/install/Snapshot
步骤
1. 编写清理脚本
-
创建清理脚本:
sudo gedit /home/nvidia/install/cleanup_images.sh
-
编辑脚本,输入以下内容:(可选就是选择其中一个,不需要的注释起来)
#!/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
-
保存并关闭编辑器
-
使脚本可执行:
sudo chmod +x /home/nvidia/install/cleanup_images.sh
2. 编辑 crontab
文件
-
使用
vim
编辑crontab
文件:EDITOR=vim crontab -e
-
添加多种清理任务: (可选就是选择其中一个,不需要的注释起来)
# 每分钟清理当前分钟之前的图片 [可选] * * * * * /home/nvidia/install/cleanup_images.sh# 每小时清理当前小时之前的图片 [可选] 0 * * * * /home/nvidia/install/cleanup_images.sh# 每天清理当前日期之前的图片 [可选] 0 0 * * * /home/nvidia/install/cleanup_images.sh
-
保存并退出:
- 按
Esc
键进入命令模式。 - 输入
:wq
保存并退出。
- 按
3. 验证 cron
任务
-
检查
cron
任务是否已添加:crontab -l
你应该能看到类似以下的输出:
* * * * * /home/nvidia/install/cleanup_images.sh 0 * * * * /home/nvidia/install/cleanup_images.sh 0 0 * * * /home/nvidia/install/cleanup_images.sh
-
检查
cron
日志,确保定时任务已成功执行:sudo tail -f /home/nvidia/install/cleanup_images.log
预期输出:
- 你应该能看到
cron
任务的执行日志。
- 你应该能看到
-
检查清理日志,确保脚本已成功执行:
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)
- 你应该能看到类似以下的记录: