温馨提示×

ubuntu定时器怎么设置

小樊
49
2026-09-12 23:20:01
栏目: 智能运维

在 Ubuntu 中,“定时器”通常指 cron 定时任务systemd timer。下面分别介绍常见用法。


一、使用 cron(最常用)

1. 编辑当前用户的定时任务

crontab -e

如果是第一次使用,会让你选择编辑器(推荐 nanovim)。

2. crontab 格式

分 时 日 月 周 命令

示例:

# 每天凌晨 2 点执行
0 2 * * * /home/user/backup.sh

# 每 5 分钟执行一次
*/5 * * * * /usr/bin/python3 /home/user/task.py

# 每周一 9:30 执行
30 9 * * 1 echo "周一任务"

3. 查看 / 删除

crontab -l      # 查看
crontab -r      # 删除全部

4. 系统级 cron(所有用户)

sudo nano /etc/crontab

或放在:

/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.weekly/

二、使用 systemd timer(更现代,推荐服务器使用)

1. 创建 service

sudo nano /etc/systemd/system/mytask.service

内容:

[Unit]
Description=My Task

[Service]
ExecStart=/home/user/mytask.sh

2. 创建 timer

sudo nano /etc/systemd/system/mytask.timer

内容:

[Unit]
Description=Run My Task Daily

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target

3. 启用并启动

sudo systemctl daemon-reload
sudo systemctl enable --now mytask.timer

4. 查看状态

systemctl list-timers
systemctl status mytask.timer

三、一次性定时任务(at)

sudo apt install at
echo "sh /home/user/task.sh" | at 23:00

四、常见坑提醒

  • cron 环境变量很少,命令最好写绝对路径
  • 脚本开头加:
    #!/bin/bash
    
  • 日志查看:
    grep CRON /var/log/syslog
    

如果你能告诉我:

  • 是想 每天 / 每隔多久 执行?
  • 脚本 / 命令 / 程序
  • 用的是 桌面版还是服务器

我可以帮你直接写一份可用配置。

0