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

告别宕机!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.dtcms.com/a/286545.html

相关文章:

  • [Raspberry Pi]如何將無頭虛擬顯示器服務(headless display)建置在樹莓派的Ubuntu桌面作業系統中?
  • 汽车免拆诊断案例 | 07款丰田Hilux启动故障
  • Redis——MoreKey
  • 深入理解进程地址空间:虚拟内存与进程独立性
  • nodeJs笔记(六)
  • Ubuntu系统下交叉编译Android的X265库
  • 【leetcode】3202. 找出有效子序列的最大长度(2)
  • 联合利华发起TRO维权行动,OUAI商标或引发跨境圈大批量冻结
  • 密码学基础概念详解:从古典加密到现代密码体系
  • 函数指针和指针函数
  • 【非辐射复合】半导体中非辐射载流子复合的双能级机制
  • 储能BMS通信“卡壳”?CAN转EtherCAT让电池数据“跑起来”
  • animation-timing-function动画的速度曲线
  • 面试150 被围绕的区域
  • 数据结构——单调栈
  • PHP语法高级篇(三):过滤器与JSON
  • 计算机“十万个为什么”之跨域
  • STM32 RTOS 开发基础:从任务管理到同步机制的全面解析
  • 深入解析PyQt5信号与槽的高级玩法:解锁GUI开发新姿势
  • codesys【串口】
  • 搜索 #1 DFS讲解
  • HBase2.5.4单机模式与伪分布式的安装与配置(Ubuntu系统)
  • Python学习笔记4
  • ts学习2
  • 用AI生成了一个名叫Janitor AI导航网站
  • Android性能优化之UI渲染优化
  • 静态时序分析:门控时钟建立时间检查
  • 无人机悬停技术运行与难点分析
  • Linux 服务器中,Tab 键自动补全功能失效
  • 免费好用,闪电般快速的AI 3D模型生成器