在 Ubuntu(及大多数 Linux 发行版)中,**“定时器”**通常有两种常见含义,下面分别说明:
cron 设置周期性任务(最常用)crontab -e
* * * * * command
│ │ │ │ │
│ │ │ │ └─ 星期 (0-7, 0和7都代表周日)
│ │ │ └─── 月份 (1-12)
│ │ └───── 日期 (1-31)
│ └─────── 小时 (0-23)
└───────── 分钟 (0-59)
# 每分钟执行
* * * * * /home/user/test.sh
# 每小时整点
0 * * * * /home/user/test.sh
# 每天凌晨 2 点
0 2 * * * /home/user/backup.sh
# 每 5 分钟
*/5 * * * * /home/user/test.sh
# 每周一 8:30
30 8 * * 1 /home/user/test.sh
systemd timer(更现代、更精确)sudo vim /etc/systemd/system/mytimer.service
内容:
[Unit]
Description=My Timer Task
[Service]
Type=oneshot
ExecStart=/home/user/test.sh
sudo vim /etc/systemd/system/mytimer.timer
内容示例(每 10 分钟):
[Unit]
Description=Run mytask every 10 minutes
[Timer]
OnCalendar=*:0/10
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable --now mytimer.timer
systemctl list-timers
# 10 分钟后执行
at now + 10 minutes
| 方式 | 适合场景 |
|---|---|
| cron | 简单周期任务 |
| systemd timer | 精确、可依赖启动时间 |
| at | 一次性任务 |
如果你是 服务器 / 桌面 / 容器 环境,或想要 开机后延迟执行 / 固定时间窗口,可以告诉我,我给你更具体的配置。