Answers:
您可以直接从进行此操作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 运行。
对于不提供此功能的命令,可以尝试以下方法之一:
该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
然后,按CtrlD退出at
外壳。该ls
命令将在一分钟内运行。
您可以采用的格式给出非常精确的时间[[CC]YY]MMDDhhmm[.ss]
,例如
$ at -t 201403142134.12 < script.sh
这将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)
因此,例如,这将ls
每天14:04 运行:
04 14 * * * ls
要为特定日期设置cronjob,请执行以下操作:
通过运行创建新的crontab crontab -e
。这将打开您喜欢的文本编辑器的窗口。
将此行添加到刚打开的文件中。如果该天是星期五,则此示例将在2014年3月15日14:34运行(因此,可以运行多次):
34 14 15 5 /path/to/command
保存文件并退出编辑器。
这样的答案提出了一种方法,使其只能运行一次,但我从未使用过,因此无法担保。
shutdown
。不过,我对那种糟糕的经历感到不愉快。
shutdown
日程安排并且cron
答案是相同的...无论是工作站还是1000个用户的邮件服务器(我的悲伤经历)更多地是关于不良习惯的后果。
shutdown
,不应包括在内cron
。(特别是和一个不知道为什么这是一个可怕的主意的人。)
不,您不能在shutdown命令中指定日期,但是有两种选择:
1)最简单的方法是使用at命令。以下示例将shutdown +5
在特定的时间和日期执行:
echo "shutdown +5" | at 10:05am 2019-01-19
2)如果您不介意使用计算器并想在24小时内关闭(24 * 60 = 1440分钟),并且您完全确定系统不会在以下时间之间重新启动:
shutdown -r +1440
at
命令。
at
值得解释。我可以看到您相信其他情况。不同的思想,不同的看法。
shutdown
命令不允许指定日期。但是,nosh工具集shutdown
支持长期的BSD语法。
它将在12:00关闭系统:
$ sudo shutdown -h 12:00
选项:
-h, -P, --poweroff
关闭机器电源。
-r, --reboot
重新启动机器。
-c
取消挂起的关机。