ubuntu设置定时重启任务
2025-12-24
Linux运维
00

目录

方法一:使用 systemd 定时器(推荐)
方法二:使用 crontab(传统方法)
方法三:使用 anacron(针对笔记本电脑)
验证设置
注意事项

在 Ubuntu 22.04 中定时重启可以通过以下方法实现:

方法一:使用 systemd 定时器(推荐)

  1. 创建 systemd 服务文件

    bash
    展开代码
    sudo nano /etc/systemd/system/reboot.service
  2. 在文件中添加以下内容

    ini
    展开代码
    [Unit] Description=System Reboot [Service] Type=oneshot ExecStart=/sbin/reboot [Install] WantedBy=multi-user.target
  3. 创建 systemd 定时器文件

    bash
    展开代码
    sudo nano /etc/systemd/system/reboot.timer
  4. 在定时器文件中添加

    ini
    展开代码
    [Unit] Description=Reboot at 4 AM daily [Timer] OnCalendar=*-*-* 04:00:00 Persistent=true [Install] WantedBy=timers.target
  5. 启用并启动定时器

    bash
    展开代码
    sudo systemctl daemon-reload sudo systemctl enable reboot.timer sudo systemctl start reboot.timer
  6. 检查状态

    bash
    展开代码
    sudo systemctl list-timers --all

方法二:使用 crontab(传统方法)

  1. 编辑 root 用户的 crontab

    bash
    展开代码
    sudo crontab -e
  2. 添加重启任务,在文件末尾添加

    展开代码
    # 每天凌晨4点重启 0 4 * * * /sbin/reboot # 或者添加日志记录 0 4 * * * /sbin/reboot 2>&1 | logger -t "scheduled-reboot"
  3. 保存并退出

方法三:使用 anacron(针对笔记本电脑)

如果你使用的是笔记本电脑,可能不会一直开机,可以使用 anacron:

  1. 创建每日任务文件

    bash
    展开代码
    sudo nano /etc/cron.daily/reboot-task
  2. 添加以下内容

    bash
    展开代码
    #!/bin/bash # 如果现在是凌晨4点到5点之间,则重启 HOUR=$(date +%H) if [ "$HOUR" -eq 4 ]; then /sbin/reboot fi
  3. 添加执行权限

    bash
    展开代码
    sudo chmod +x /etc/cron.daily/reboot-task

验证设置

  • 检查 systemd 定时器

    bash
    展开代码
    sudo systemctl status reboot.timer sudo systemctl list-timers
  • 检查 crontab

    bash
    展开代码
    sudo crontab -l

注意事项

  1. 确保你有保存所有工作,因为重启会终止所有运行的程序

  2. 考虑添加延迟重启选项,给用户保存的时间:

    bash
    展开代码
    # 在重启前广播警告消息 0 4 * * * /sbin/shutdown -r 05:00 "系统将在5分钟后重启进行维护"
  3. 如果你希望只在特定日期重启,可以调整时间表达式:

    • 工作日每天重启:0 4 * * 1-5
    • 每周一重启:0 4 * * 1

推荐使用 systemd 定时器,因为它是 Ubuntu 22.04 的默认调度系统,提供更好的日志和管理功能。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!