Linux

如何在終端的特定日期時間關閉 Linux?

  • January 7, 2022

看來我可以sudo shutdown通過指定時間或分鐘來關閉使用。

有沒有辦法指定關機的日期時間?

您可以直接從 中執行此操作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
  1. 將要執行的命令保存在文本文件中,然後將該文件傳遞給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
  1. 您還可以at從 STDIN 傳遞命令:
$ at now + 1 min
warning: commands will be executed using /bin/sh
at> ls

然後,按Ctrl``D退出atshell。該ls命令將在一分鐘內執行。

您可以以 的格式給出非常精確的時間[[CC]YY]MMDDhhmm[.ss],如

$ at -t 201403142134.12 < script.sh

script.sh這將在 2014 年 3 月 14 日 21:34 和 12 秒執行腳本。

B. 使用 cron(雖然這不是關閉的好主意)

另一種方法是使用cron旨在在特定時間執行任務的調度程序。它通常用於將重複的任務,但您也可以給出特定的時間。每個使用者都有自己的“crontabs”,用於控制執行哪些作業以及何時執行。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        
  1. 保存文件並退出編輯器。

這個SO answer 提出了一種讓它只執行一次的方法,但我從未使用過它,所以我不能保證它。

引用自:https://unix.stackexchange.com/questions/120506