在 Linux/Unix 系统中使用 crontab
设置每月任务时,可以通过调整时间字段来实现。以下是详细指南:
crontab 时间格式如下:
* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └── 星期 (0-6, 0=周日)
│ │ │ └──── 月份 (1-12)
│ │ └────── 日 (1-31)
│ └──────── 小时 (0-23)
└────────── 分钟 (0-59)
0 0 1 * * /path/to/script.sh
30 15 15 * * /path/to/backup.py
0 0 L * * /path/to/cleanup.sh
L
表示最后一天,若不支持需改用以下方式:
bash
0 0 28-31 * * [ $(date +\%d -d tomorrow) -eq 1 ] && /path/to/cleanup.sh
0 0 1 1,6,12 * /path/to/report.sh
0 9 1-7 * * [ $(date +\%u) -le 5 ] && /path/to/task.sh
bash
crontab -e
Ctrl+X
→ Y
→ Enter
)。bash
crontab -l
/var/log/syslog
或 journalctl -u cron
。PATH
。chmod +x /path/to/script
)。%
需转义为 \%
(如 date +\%d
)。推荐使用 Crontab Guru 在线验证时间表达式是否正确。
通过以上配置,你可以灵活控制每月任务的执行时间和频率。