尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Ubuntu定时关机3种实现方案与配置详解
1. Ubuntu系统定时关机实现方案解析在Linux系统管理中定时关机是个看似简单却非常实用的功能。作为一名长期使用Ubuntu的开发者我经常遇到需要让服务器或开发机在特定时间自动关机的场景。比如下班后让测试环境自动关闭节省电力或者防止夜间无人值守时运行中的程序消耗资源。Ubuntu系统本身提供了多种实现定时关机的方式每种方法各有特点。最常用的方案是通过cron定时任务调度系统命令这也是Linux系统管理中最正统的做法。不过对于新手而言也可以选择更直观的systemd timer或者简单的shutdown命令配合sleep来实现。重要提示执行关机命令需要管理员权限所有方案都需要以root身份或通过sudo执行2. 使用cron实现精准定时关机2.1 cron服务基础配置cron是Unix-like系统中最经典的定时任务工具通过crontab文件来配置调度规则。在Ubuntu中cron服务默认已安装并运行可以通过以下命令检查状态systemctl status cron如果显示active (running)表示服务正常。首次配置建议先更新crontab默认编辑器避免新手掉进nano的坑sudo update-alternatives --config editor # 选择熟悉的编辑器如vim或nano2.2 编写定时关机任务为root用户添加定时任务普通用户的cron无权执行关机操作sudo crontab -e在打开的文件末尾添加如下行实现每天23:00关机0 23 * * * /sbin/shutdown -h now这条cron表达式的含义是第1个0分钟数为0第2个23小时数为23晚上11点后三个*每天、每月、每周都执行/sbin/shutdown关机命令完整路径-h now立即关机halt2.3 cron表达式深度解析很多新手对cron的五个星号感到困惑这里详细说明下格式* * * * * 要执行的命令 - - - - - | | | | | | | | | ----- 星期几 (0 - 6) (周日0) | | | ------- 月份 (1 - 12) | | --------- 日 (1 - 31) | ----------- 小时 (0 - 23) ------------- 分钟 (0 - 59)如果想设置每周工作日(周一到周五)23:30关机表达式应为30 23 * * 1-5 /sbin/shutdown -h now2.4 高级cron技巧日志记录建议将关机操作重定向到日志文件方便排查0 23 * * * /sbin/shutdown -h now /var/log/shutdown.log 21命令路径问题cron执行环境与用户shell环境不同建议使用绝对路径邮件通知cron默认会发送任务输出到用户邮箱可以禁用0 23 * * * /sbin/shutdown -h now /dev/null 213. 替代方案systemd timer实现3.1 创建关机服务单元对于使用systemd的现代Ubuntu系统(17.04)可以创建专用servicesudo vim /etc/systemd/system/shutdown-daily.service内容如下[Unit] DescriptionDaily Shutdown [Service] Typeoneshot ExecStart/usr/sbin/shutdown -h now3.2 配置定时器创建对应的timer单元sudo vim /etc/systemd/system/shutdown-daily.timer内容如下[Unit] DescriptionDaily at 23:00 [Timer] OnCalendar*-*-* 23:00:00 Persistenttrue [Install] WantedBytimers.target3.3 激活并测试启用定时器sudo systemctl daemon-reload sudo systemctl enable --now shutdown-daily.timer检查状态systemctl list-timers --all4. 简单粗暴的sleep方案如果只需要临时执行一次定时关机可以直接使用sudo shutdown -h 23:00或者计算当前时间到23:00的秒数sudo shutdown -h $(($(date -d 23:00 %s) - $(date %s)))5. 常见问题与排查技巧5.1 定时任务未执行排查流程检查cron服务状态systemctl status cron查看cron日志grep CRON /var/log/syslog测试命令能否手动执行sudo /sbin/shutdown -h now5.2 特殊场景处理场景1想在关机前保存工作环境 解决方案创建预处理脚本#!/bin/bash # 保存工作状态命令 /usr/local/bin/save_workspace.sh /sbin/shutdown -h now场景2需要取消已计划的关机sudo shutdown -c5.3 安全性建议避免直接使用root的crontab可以创建专用用户sudo useradd -r -s /bin/false shutdownuser sudo visudo # 添加 shutdownuser ALL(ALL) NOPASSWD: /sbin/shutdown对于多用户系统建议添加关机提醒0 22 * * * /usr/bin/wall 系统将于1小时后关机请保存工作 0 23 * * * /sbin/shutdown -h now6. 扩展应用场景6.1 非固定时间关机如果需要根据条件关机如CPU温度过高#!/bin/bash TEMP$(sensors | grep Package id | awk {print $4} | cut -d -f2 | cut -d . -f1) [ $TEMP -gt 80 ] sudo shutdown -h now6.2 远程定时关机通过SSH实现远程主机定时关机ssh userremote echo password | sudo -S shutdown -h 23:006.3 图形界面工具对于桌面用户可以安装gnome-schedulesudo apt install gnome-schedule然后在应用程序 → 系统工具 → Scheduled tasks中添加关机任务7. 性能与资源考量cron vs systemdcron更适合简单的定时任务systemd timer更现代支持更复杂的时间表达式systemd有更好的日志集成journalctl资源消耗cron每分钟唤醒一次检查任务systemd timer使用事件驱动更节省资源精度对比cron最小精度1分钟systemd timer理论上可以精确到秒级在实际使用中如果只是实现每天定点关机两种方案差异不大。对于需要高精度或复杂时间表达式的场景建议使用systemd timer。
RELATED

相关推荐

ROG游戏本双系统安装指南:Linux与Windows共存实战

ROG游戏本双系统安装指南:Linux与Windows共存实战

1. ROG游戏本双系统安装的必要性与挑战作为一名游戏玩家兼开发者,我在ROG枪神6上折腾双系统已经超过50次。ROG系列笔记本因其强大的硬件配置和可玩性,成为技术爱好者安装LinuxWindows双系统的热门选择。但与其他品牌笔记本相比,ROG在双系统安…

📅 2026/9/16 16:58:01
企业微信iPad协议智能机器人开发指南

企业微信iPad协议智能机器人开发指南

1. 企业微信iPad协议智能机器人概述企业微信作为国内主流的企业级通讯工具,其iPad版本协议因其独特的交互特性和系统权限,成为开发智能机器人的理想平台。与PC端和移动端相比,iPad协议在保持企业微信完整功能的同时,提供了更稳定的…

📅 2026/9/10 0:52:12
【一】软件工程核心概念层级地图与项目落地全流程

【一】软件工程核心概念层级地图与项目落地全流程

很多同学,都会被结构化方法、OOA、UML、设计模式、Scrum、ABSD、ATAM 这一堆概念绕晕:它们有的像方法,有的像工具,有的管项目节奏,有的管代码设计,常常被放在一起考,却根本不在同一个维度上。 很…

📅 2026/8/7 14:44:12
MORE NEWS

更多资讯

📰

26年程序员转AI指南:收藏这份学习路线,轻松拥抱大模型时代!

文章分享了程序员如何成功转型AI领域的心得与经验。核心内容围绕五个学习阶段展开:先理解大模型调用本身,再学习AI应用开发所需能力,重点掌握RAG,随后学习Agent,最后通过项目实践积累经验。强调理解模型、业务和工程的…

📰

PHP登录安全实战:TOTP多因素认证、风控拦截与Redis会话一致性

前阵子接手一个老 PHP 电商项目,老板让我把登录安全做扎实。当时我对多因素认证、风控拦截、会话一致性这三块也只是有个大概认知,网上现成的库又不敢直接塞进生产环境,干脆从零开始写一套。正好手上有个 PHP 8.3 的空闲服务,配合…

📰

数组:算法竞赛的地基,从内存模型到高级数据结构的底层逻辑

很多同学刚接触算法竞赛时,第一反应是去啃各种“高大上”的算法——图论、动态规划、网络流、字符串匹配。但真正让我意识到“地基”重要性的,是一次比赛中因为数组开小导致半小时调不出错误、最后发现是边界问题的惨痛教训。数组,这个最基础…

📰

逆变器母线电容选型实战:耐压与纹波电流计算指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Zynq双千兆以太网硬件设计:RGMII时序收敛与PHY选型实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

ST语言BYTE数组解析:Modbus字节序问题的本质与UDT解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬