Ask*_*kar 61 linux shutdown scheduling
似乎我可以sudo shutdown
通过指定时间或分钟来关闭使用。
有没有办法指定关闭的日期时间?
ter*_*don 91
您可以直接从 执行此操作shutdown command
,请参阅man shutdown
:
SYNOPSIS
/sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[...]
time When to shutdown.
Run Code Online (Sandbox Code Playgroud)
因此,例如:
shutdown -h 21:45
Run Code Online (Sandbox Code Playgroud)
这将shutdown -h
在 21:45运行。
对于不提供此功能的命令,您可以尝试以下之一:
该at
守护程序是专为在于此。根据您的操作系统,您可能需要安装它。在基于 Debian 的系统上,这可以通过以下方式完成:
sudo apt-get install at
Run Code Online (Sandbox Code Playgroud)
可以通过三种方式向 发出命令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
Run Code Online (Sandbox Code Playgroud)将要运行的命令保存在文本文件中,然后将该文件传递给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
Run Code Online (Sandbox Code Playgroud)您还可以at
从 STDIN传递命令:
$ at now + 1 min
warning: commands will be executed using /bin/sh
at> ls
Run Code Online (Sandbox Code Playgroud)
然后,按CtrlD退出at
外壳。该ls
命令将在一分钟内运行。
您可以以 的格式给出非常精确的时间[[CC]YY]MMDDhhmm[.ss]
,如
$ at -t 201403142134.12 < script.sh
Run Code Online (Sandbox Code Playgroud)
这将script.sh
在 2014 年 3 月 14 日的 21:34 12 秒运行脚本。
另一种方法是使用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)
Run Code Online (Sandbox Code Playgroud)
因此,例如,这将在ls
每天 14:04运行:
04 14 * * * ls
Run Code Online (Sandbox Code Playgroud)
要为特定日期设置 cronjob:
通过运行创建一个新的 crontab crontab -e
。这将打开您最喜欢的文本编辑器的窗口。
将此行添加到刚刚打开的文件中。如果那天是星期五,这个特定示例将在 2014 年 3 月 15 日的 14:34 运行(所以,好吧,它可能会运行不止一次):
34 14 15 5 /path/to/command
Run Code Online (Sandbox Code Playgroud)保存文件并退出编辑器。
这个SO 答案提出了一种让它只运行一次的方法,但我从未使用过它,所以我不能保证它。
nde*_*mou 28
不,您不能在关闭命令中指定日期,但存在两种替代方法:
1)最简单的是使用at 命令。以下示例将shutdown +5
在特定时间和日期执行:
echo "shutdown +5" | at 10:05am 2019-01-19
Run Code Online (Sandbox Code Playgroud)
2)如果您不介意使用计算器并希望在 24 小时(24*60=1440 分钟)内关闭,并且您绝对确定系统不会在此期间重新启动:
shutdown -r +1440
Run Code Online (Sandbox Code Playgroud)
它将在 12:00 关闭您的系统:
$ sudo shutdown -h 12:00
Run Code Online (Sandbox Code Playgroud)
选项:
-h, -P, --poweroff
Run Code Online (Sandbox Code Playgroud)
关闭机器电源。
-r, --reboot
Run Code Online (Sandbox Code Playgroud)
重新启动机器。
-c
Run Code Online (Sandbox Code Playgroud)
取消挂起的关机。