在 Ubuntu(以及其他 Linux 发行版)中,定时器一般有两种常见方式:
下面分别说明。
crontab -e
如果是系统级任务:
sudo crontab -e
* * * * * command
分 时 日 月 周 命令
0 2 * * * /home/user/backup.sh
*/5 * * * * /home/user/check.sh
30 9 * * 1 /home/user/weekly.sh
crontab -l
grep CRON /var/log/syslog
sudo vim /etc/systemd/system/mytask.service
内容示例:
[Unit]
Description=My Task
[Service]
Type=oneshot
ExecStart=/home/user/mytask.sh
sudo vim /etc/systemd/system/mytask.timer
示例(每天 3:00):
[Unit]
Description=Run My Task Daily
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl daemon-reexec
sudo systemctl enable --now mytask.timer
systemctl list-timers
systemctl status mytask.timer
| 场景 | 推荐 |
|---|---|
| 简单脚本、个人任务 | cron |
| 系统服务、需要日志/依赖 | systemd timer |
| 容器/服务器管理 | systemd timer |
如果你愿意,可以告诉我:
我可以直接帮你写完整配置。