Linux
如何在終端的特定日期時間關閉 Linux?
看來我可以
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
:
- 管它:
$ 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
- 將要執行的命令保存在文本文件中,然後將該文件傳遞給
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
- 您還可以
at
從 STDIN 傳遞命令:$ at now + 1 min warning: commands will be executed using /bin/sh at> ls
然後,按
Ctrl``D
退出at
shell。該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:
- 通過執行創建一個新的 crontab
crontab -e
。這將打開您最喜歡的文本編輯器的視窗。- 將此行添加到剛剛打開的文件中。如果那天是星期五,這個特定的範例將在 2014 年 3 月 15 日的 14:34 執行(所以,好吧,它可能會執行不止一次):
34 14 15 5 /path/to/command
- 保存文件並退出編輯器。
這個SO answer 提出了一種讓它只執行一次的方法,但我從未使用過它,所以我不能保證它。