如何从终端在特定日期时间关闭 Linux?

如何从终端在特定日期时间关闭 Linux?

看来我可以sudo shutdown通过指定时间或分钟来关闭。

有没有办法指定关闭的日期时间?

答案1

您可以直接从 执行此操作shutdown command,请参阅man shutdown

SYNOPSIS
   /sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]

[...]

   time   When to shutdown.

因此,例如:

shutdown -h 21:45

shutdown -h将于 21:45运行。


对于不提供此功能的命令,您可以尝试以下方法之一:

A. 使用于

at守护进程正是为此而设计的。根据您的操作系统,您可能需要安装它。在基于 Debian 的系统上,可以通过以下方式完成:

sudo apt-get install at

可以通过三种方式向 发出命令at

  1. 管道它:

    $ echo "ls > a.txt" | at now + 1 min
    warning: commands will be executed using /bin/sh
    job 3 at Thu Apr  4 20:16:00 2013
    
  2. 将要运行的命令保存在文本文件中,然后将该文件传递到at

    $ echo "ls > a.txt" > cmd.txt
    $ at now + 1 min < cmd.txt
    warning: commands will be executed using /bin/sh
    job 3 at Thu Apr  4 20:16:00 2013
    
  3. 您还可以at从 STDIN 传递命令:

    $ at now + 1 min
    warning: commands will be executed using /bin/sh
    at> ls
    

    然后,按CtrlD退出atshell。该ls命令将在一分钟内运行。

您可以以 的格式给出非常精确的时间[[CC]YY]MMDDhhmm[.ss],如

$ at -t 201403142134.12 < script.sh

script.sh这将在 2014 年 3 月 14 日 21:34 12 秒运行脚本。

B. 使用 cron(尽管这对于关闭来说不是一个好主意)

另一种方法是使用cron旨在在特定时间执行任务的调度程序。它通常用于将重复的任务,但您也可以给出特定的时间。每个用户都有自己的“crontab”,用于控制执行哪些作业以及何时执行。 crontab 的一般格式是:

*     *     *     *     *  command to be executed
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- day of week (0 - 6) (Sunday=0)
|     |     |     +------- month (1 - 12)
|     |     +--------- day of month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

例如,这将ls在每天 14:04 运行:

04 14 * * * ls

要为特定日期设置 cronjob:

  1. 通过运行创建一个新的 crontab crontab -e。这将打开您最喜欢的文本编辑器的窗口。

  2. 将此行添加到刚刚打开的文件中。如果当天是星期五,此特定示例将在 2014 年 3 月 15 日 14:34 运行(因此,好吧,它可能会运行多次):

    34 14 15 5  /path/to/command        
    
  3. 保存文件并退出编辑器。

所以答案建议了一种让它只运行一次的方法,但我从未使用过它,所以我不能保证它。

答案2

不,您不能在关闭命令中指定日期,但存在两种选择:

  1. 最简单的是使用at 命令。以下示例将shutdown +5在特定时间和日期执行:
    echo "shutdown +5" | at 10:05am 2019-01-19
    
  2. 如果您不介意使用计算器并希望在 24 小时(24×60=1440 分钟)内关机,并且您绝对确定系统不会在这期间重新启动:
    shutdown +1440
    

答案3

它将在 12:00 关闭您的系统:

$ sudo shutdown -h 12:00

选项:

-h, -P, --poweroff

关闭机器电源。

-r, --reboot

重新启动机器。

-c

取消待处理的关闭。

答案4

如果您想立即关闭机器,您可以输入终端

$ shutdown -P -h now

有了“现在”的论点。无论如何,计算机不会停止。

相关内容