当前位置: 首页 > web >正文

告别宕机!Ubuntu自动重启定时任务设置(一键脚本/手动操作)

适用于服务器、工控机、嵌入式系统、离线 AI 终端等场景,帮助你在 Ubuntu 系统上实现每天自动重启,并保留日志记录。


📌 一、功能概述

  • 每天定时自动重启(如凌晨 2 点)
  • 将重启日志记录到 /var/log/cron_reboot.log
  • 支持一键部署到多台设备
  • 支持后期修改重启时间
  • 支持随时删除定时重启任务
  • 提供脚本版 & 手动操作两种方式

⚙️ 二、方法一:一键脚本自动设置

适合你需要在多台设备快速设置定时重启任务的情况。

1️⃣ 添加定时重启任务脚本

📄 setup_reboot_cron.sh

#!/bin/bashCRON_CMD="/usr/sbin/shutdown -r now >> /var/log/cron_reboot.log 2>&1"
CRON_JOB="0 2 * * * $CRON_CMD"echo "🚀 开始设置每日自动重启任务..."if sudo crontab -l 2>/dev/null | grep -Fq "$CRON_CMD"; thenecho "✅ 已存在定时重启任务,无需重复添加。"
elseecho "➕ 添加定时重启任务到 root 的 crontab..."(sudo crontab -l 2>/dev/null; echo "$CRON_JOB") | sudo crontab -echo "✅ 已成功添加任务:$CRON_JOB"
fiif [ ! -f /var/log/cron_reboot.log ]; thenecho "📄 创建日志文件..."sudo touch /var/log/cron_reboot.logsudo chown root:root /var/log/cron_reboot.logsudo chmod 644 /var/log/cron_reboot.log
fiecho "🎉 自动重启设置完成!"

✅ 默认每天 2:00 AM 重启,如需更改,参考下方“修改时间”。


2️⃣ 修改定时重启时间脚本

📄 update_reboot_time.sh

#!/bin/bashHOUR="$1"
MINUTE="$2"
CMD="/usr/sbin/shutdown -r now >> /var/log/cron_reboot.log 2>&1"
NEW_CRON="${MINUTE} ${HOUR} * * * ${CMD}"if [[ -z "$HOUR" || -z "$MINUTE" ]]; thenecho "❗ 用法:./update_reboot_time.sh <小时> <分钟>"exit 1
fiecho "🔄 正在设置重启时间为每天 ${HOUR}:${MINUTE}..."EXISTING=$(sudo crontab -l 2>/dev/null)if echo "$EXISTING" | grep -Fq "$CMD"; thenUPDATED=$(echo "$EXISTING" | sed "s|.*$CMD|$NEW_CRON|")echo "$UPDATED" | sudo crontab -
else(echo "$EXISTING"; echo "$NEW_CRON") | sudo crontab -
fiecho "✅ 已设置定时重启为 ${HOUR}:${MINUTE}"

✅ 使用方法(示例:改为凌晨 1:30):

./update_reboot_time.sh 1 30

3️⃣ 删除定时重启任务脚本

📄 remove_reboot_cron.sh

#!/bin/bashCMD="/usr/sbin/shutdown -r now >> /var/log/cron_reboot.log 2>&1"
EXISTING=$(sudo crontab -l 2>/dev/null)if echo "$EXISTING" | grep -Fq "$CMD"; thenUPDATED=$(echo "$EXISTING" | grep -Fv "$CMD")echo "$UPDATED" | sudo crontab -echo "✅ 定时重启任务已删除。"
elseecho "ℹ️ 没有找到重启任务,无需删除。"
fi

✅ 执行:

./remove_reboot_cron.sh

🛠️ 三、方法二:手动设置(适合单机操作)

1️⃣ 添加定时任务

  1. 打开 root 的 crontab:

    sudo crontab -e
    
  2. 添加以下内容(默认每天 2:00 重启):

    0 2 * * * /usr/sbin/shutdown -r now >> /var/log/cron_reboot.log 2>&1
    

    这里的含义:

    时间字段
    分钟0
    小时2
    *
    *
    星期*
  3. 创建日志文件(可选):

    sudo touch /var/log/cron_reboot.log
    sudo chown root:root /var/log/cron_reboot.log
    sudo chmod 644 /var/log/cron_reboot.log
    

2️⃣ 修改重启时间

再次执行:

sudo crontab -e

将这行的时间字段 0 2 改为你希望的时间:

时间表达式
凌晨 1:3030 1
早上 4:000 4

3️⃣ 删除定时重启任务

还是执行:

sudo crontab -e

直接删除包含 shutdown -r now 的那一行即可。


🔗 四、批量部署小技巧

你可以用 scpssh 在局域网快速推送这些脚本到多台设备:

scp setup_reboot_cron.sh user@192.168.1.101:~
ssh user@192.168.1.101 'chmod +x setup_reboot_cron.sh && ./setup_reboot_cron.sh'

或者使用更专业的自动化工具如 Ansible、SaltStack、Fabric 等。


📦 五、完整文件打包下载

你可以将这三个脚本打包为 .zip.tar.gz

tar -czvf reboot_cron_tools.tar.gz setup_reboot_cron.sh update_reboot_time.sh remove_reboot_cron.sh

上传到网盘或 GitHub 即可一键分发。


✅ 六、总结

功能脚本手动操作
添加定时重启setup_reboot_cron.sh编辑 sudo crontab -e
修改重启时间update_reboot_time.sh修改 crontab 时间字段
删除定时重启remove_reboot_cron.sh删除 crontab 中那一行
日志保存自动生成手动创建 /var/log/cron_reboot.log

🛠️ 附:查看当前已设置的定时任务(验证是否成功设定)

查看当前用户的cron任务:

crontab -l

如果需要查看系统范围内的cron任务(通常是root用户的任务):

sudo crontab -l

如果看到类似于以下内容即为设定成功:

0 3 * * * /sbin/shutdown -r now

更多交流,欢迎关注我,一起 DeepTechTalk

如果觉得本文对你有帮助,欢迎一键三连:点赞 👍、收藏 ⭐、评论 💬 !

http://www.xdnf.cn/news/15791.html

相关文章:

  • 怎么自己搭建云手机
  • 数据库防止数组字符串序列化
  • 知识管理中的人工智能:概述、主要功能和管理工具
  • #vscode# #SSH远程# #Ubuntu 16.04# 远程ubuntu旧版Linux
  • 【Nginx】nginx+lua+redis实现限流
  • ARCS系统机器视觉实战(直播回放)
  • 医疗人工智能的心电图分析:创新技术与临床应用
  • Java面试宝典:Maven
  • 开源短链接工具 Sink 无需服务器 轻松部署到 Workers / Pages
  • nginx定制http头信息
  • 链表算法之【链表的中间节点】
  • 【Python】python 爬取某站视频批量下载
  • MyUI表单VcForm组件文档
  • Spring介绍以及IOC和AOP的实现
  • SpringBoot项目创建,三层架构,分成结构,IOC,DI相关,@Resource与@Autowired的区别
  • Camera相机人脸识别系列专题分析之十七:人脸特征检测FFD算法之libhci_face_camera_api.so 296点位人脸识别检测流程详解
  • Flutter——Android原生View是如何通过Flutter进行加载
  • 关于Mysql开启慢查询日志报错:13 - Permission denied的解决方案
  • logback日志控制服务器日志输出
  • 对Yii2中开启`authenticator`后出现的跨域问题-修复
  • 图机器学习(11)——链接预测
  • 现代R语言【Tidyverse、Tidymodel】的机器学习方法
  • Typecho博客集成阿里云CDN+OSS实现全站加速方案
  • 关于字符编辑器vi、vim版本的安装过程及其常用命令:
  • 第七章 愿景09 海波龙的坑
  • 数字化转型:概念性名词浅谈(第三十讲)
  • Kotlin集合过滤
  • 文档处理控件TX Text Control系列教程:使用 C# .NET 将二维码添加到 PDF 文档
  • 从拆分到导出图片,这款工具如何简化PDF处理流程
  • 基于R语言piecewiseSEM结构方程模型在生态环境领域实践技术应用