首页 > 系统教程 > LINUX > 正文

如何在Linux中设置每天定时关机?使用cron与shutdown命令的配置步骤

星夢妙者
发布: 2025-08-26 13:08:01
原创
327人浏览过
<p>答案:通过cron服务和shutdown命令可实现Linux每天定时关机。使用crontab -e添加如30 23 * /sbin/shutdown -h now的任务,设置每日23:30关机;用crontab -l确认任务存在,systemctl status cron检查服务状态;临时取消需注释crontab条目,修改则直接编辑时间;shutdown -c无法取消cron触发的即时关机,必须通过修改crontab文件操作。</p>

如何在linux中设置每天定时关机?使用cron与shutdown命令的配置步骤

在Linux系统里,要实现每天的定时关机,最直接且可靠的方法就是结合使用

cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
服务来调度任务,并利用
shutdown
登录后复制
登录后复制
登录后复制
命令来执行关机操作。这基本上是Linux系统管理中的一个基础技能,学会了它,你的服务器或个人工作站就能在不需要人工干预的情况下,按时完成“休息”或“重启”的指令,省心不少。

解决方案

要设置Linux每天定时关机,我们主要通过编辑当前用户的

crontab
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
文件来添加一个定时任务。

  1. 打开

    crontab
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    编辑器: 在终端中输入
    crontab -e
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    。如果你是第一次使用,系统可能会让你选择一个文本编辑器,比如
    nano
    登录后复制
    登录后复制
    登录后复制
    vim
    登录后复制
    登录后复制
    登录后复制
    。我个人习惯用
    vim
    登录后复制
    登录后复制
    登录后复制
    ,但对于新手来说,
    nano
    登录后复制
    登录后复制
    登录后复制
    可能更友好一些。

  2. 添加定时关机任务: 在打开的文件末尾,添加一行来定义你的定时关机计划。

    cron
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    任务的格式是:
    分钟 小时 日期 月份 星期 命令
    登录后复制

    假设你想让系统每天晚上11点30分关机,你可以这样写:

    30 23 * * * /sbin/shutdown -h now
    登录后复制
    登录后复制

    • 30
      登录后复制
      : 代表分钟,这里是30分。
    • 23
      登录后复制
      : 代表小时,这里是23点(即晚上11点)。
    • *
      登录后复制
      登录后复制
      登录后复制
      : 代表日期的每一天。
    • *
      登录后复制
      登录后复制
      登录后复制
      : 代表月份的每一个月。
    • *
      登录后复制
      登录后复制
      登录后复制
      : 代表星期的每一天(周日到周六)。
    • /sbin/shutdown -h now
      登录后复制
      : 这是要执行的命令。
      /sbin/shutdown
      登录后复制
      是关机命令的完整路径,确保
      cron
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      登录后复制
      能找到它。
      -h
      登录后复制
      参数表示“halt”(关机),
      now
      登录后复制
      表示立即执行关机。

    如果你希望关机前给一个短暂的警告,比如提前5分钟,但让系统在特定时间点关机,也可以这样写:

    25 23 * * * /sbin/shutdown -h 5 "系统将在5分钟后关机,请保存工作!"
    登录后复制
    这样,在晚上11点25分,系统会发出警告,并在11点30分执行关机。不过,对于每日定时关机,我通常更倾向于直接在指定时间点执行
    shutdown -h now
    登录后复制
    登录后复制
    ,因为它更简洁明了。

  3. 保存并退出: 如果你用

    nano
    登录后复制
    登录后复制
    登录后复制
    ,按
    Ctrl+O
    登录后复制
    保存,然后按
    Ctrl+X
    登录后复制
    退出。 如果你用
    vim
    登录后复制
    登录后复制
    登录后复制
    ,按
    Esc
    登录后复制
    键,然后输入
    :wq
    登录后复制
    并回车保存退出。

    cron
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    服务会自动检测到
    crontab
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    文件的变化并加载新的任务。至此,你的定时关机任务就设置好了。

如何确认定时关机任务已成功设置并正在运行?

设置完定时任务,我们总会有点不确定,它到底有没有生效?这就像你给一个机器人下达指令,总得找个方式确认它是不是真的“听懂了”。

最直接的验证方法就是再次查看你的

crontab
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
文件。在终端输入
crontab -l
登录后复制
(注意是小写L),它会列出当前用户的所有
cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
任务。如果你能看到之前添加的那一行定时关机命令,那么至少从配置层面来看,它是存在的。

但仅仅存在还不够,我们还需要确认

cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
服务本身是否正常运行。大多数Linux发行版中,
cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
服务是默认启动的,并且会随着系统启动而自启动。你可以用
systemctl status cron
登录后复制
(或者
systemctl status cronie
登录后复制
,具体取决于你的发行版)来检查
cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
服务的状态。如果它显示为
active (running)
登录后复制
,那就说明服务没问题。

再深入一点,如果你想知道

cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
是否真的尝试执行了你的任务,可以查看系统的日志文件。
cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
的执行记录通常会写入
/var/log/syslog
登录后复制
/var/log/messages
登录后复制
或通过
journalctl
登录后复制
命令查询。例如,你可以使用
journalctl -u cron -f
登录后复制
来实时查看
cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
服务的日志输出,或者
grep CRON /var/log/syslog
登录后复制
来查找历史记录。如果你的定时任务时间到了,而系统没有关机,这里通常会有一些错误信息,比如命令路径不对、权限不足等等。

我个人在配置这类任务时,通常会先设置一个几分钟后就会触发的测试任务,比如

* * * * * echo "Test cron job executed at $(date)" >> ~/cron_test.log
登录后复制
,然后观察
~/cron_test.log
登录后复制
文件是否被创建并写入内容。这样可以快速验证
cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
服务本身是否能正常执行任务,然后再把关机任务加进去。

定时关机与休眠、待机有何不同,我该如何选择?

这三者虽然都能让你的电脑“休息”,但它们的工作原理和适用场景却大相径庭,就像是三种不同的“休息”姿势。

定时关机 (Shutdown): 这是最彻底的休息。系统会关闭所有程序,卸载文件系统,然后切断电源。关机后,电脑不消耗任何电力(除了主板上的微弱电流),再次启动时需要重新加载操作系统,耗时最长。它的优点是能清除内存中的所有状态,给系统一个“干净”的开始,有助于解决一些临时的软件问题,也最节能。对于服务器,或者你每天结束工作后不再需要电脑,关机是最佳选择。

休眠 (Hibernate): 休眠是一种“深度睡眠”。系统会将内存中的所有数据(包括你打开的程序、文档等)保存到硬盘上的一个特殊文件(通常是

swap
登录后复制
分区或一个独立文件)中,然后彻底断电。再次开机时,系统会从硬盘中恢复这些数据,让你回到离开时的状态。它比关机启动快,但比待机慢。优点是节能,且能保留工作状态,适合笔记本电脑在电量耗尽或长时间不使用时使用。

待机/睡眠 (Suspend/Sleep): 待机是“浅度睡眠”。系统会进入低功耗状态,大部分硬件(如显示器、硬盘)会停止工作,但内存(RAM)仍然保持通电,以保存你的工作状态。唤醒时几乎是瞬间完成的。它的优点是唤醒速度极快,能让你迅速回到工作状态。缺点是仍然会消耗少量电力,如果长时间待机,电量消耗会比较明显。适合短暂离开电脑,或者晚上不需要关机,第二天早上想立即开始工作的情况。

如何选择?

  • 需要每天彻底关闭系统,节省能源,或者解决潜在的系统小问题? 选择定时关机。这通常是服务器、工作站夜间维护或个人电脑的日常操作。
  • 需要长时间离开电脑,但又不想丢失当前工作状态,同时要节能? 选择休眠。这在笔记本电脑上尤为常见。
  • 只是短暂离开,希望回来能立即继续工作,不介意少量电量消耗? 选择待机/睡眠

对于本篇文章讨论的“每天定时关机”,显然,我们的目标就是彻底的

shutdown
登录后复制
登录后复制
登录后复制

如果我需要临时取消或修改已设置的定时关机任务怎么办?

生活总是充满变数,你可能今天突然需要加班,或者明天要出差,那原定的定时关机任务就得调整一下了。处理这些变动,比你想象的要简单。

临时取消任务: 如果你只是想让某个特定日期的定时关机失效,最简单的方法是编辑你的

crontab
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
文件。

  1. 再次打开
    crontab -e
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
  2. 找到你设置的定时关机那一行。
  3. 在行首添加一个
    #
    登录后复制
    登录后复制
    号,这会将该行注释掉。例如:
    # 30 23 * * * /sbin/shutdown -h now
    登录后复制
  4. 保存并退出。 这样,该任务就不会在第二天触发了。等你不需要取消的时候,再把
    #
    登录后复制
    登录后复制
    号删除即可。

永久删除任务: 如果你觉得这个定时关机任务以后都不需要了,可以直接在

crontab -e
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
中删除那一行。保存退出后,任务就彻底移除了。

修改任务时间: 如果只是想调整关机时间,比如从晚上11点半改为12点,同样是打开

crontab -e
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
,然后直接修改那一行的时间参数: 将
30 23 * * * /sbin/shutdown -h now
登录后复制
登录后复制
修改为
00 00 * * * /sbin/shutdown -h now
登录后复制
(代表午夜12点)。 保存并退出即可。

这里需要特别强调一点:

shutdown
登录后复制
登录后复制
登录后复制
命令本身有一个
-c
登录后复制
参数,用于取消正在等待执行的关机任务。例如,如果你手动执行了
shutdown -h +60 "系统将在60分钟后关机"
登录后复制
,那么在60分钟内,你可以用
shutdown -c
登录后复制
登录后复制
来取消它。但对于
cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
定时触发的
shutdown -h now
登录后复制
登录后复制
,由于它是在指定时间点“立即”执行关机,并没有一个“等待期”,所以
shutdown -c
登录后复制
登录后复制
在这里是无效的。你只能通过修改或删除
crontab
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
条目来控制
cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
任务本身。

所以,核心思路就是:

cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
任务的控制权在于
crontab
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
文件。任何关于
cron
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
定时任务的增、删、改,都应该直接操作
crontab -e
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
这个文件。这就像你给闹钟设定时间,想改就直接去改闹钟的设置,而不是在闹钟响的前一秒去按“取消”。

以上就是如何在Linux中设置每天定时关机?使用cron与shutdown命令的配置步骤的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号