Puedes hacerlo directamente desde el shutdown command
, ver man shutdown
:
SYNOPSIS
/sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[...]
time When to shutdown.
Entonces, por ejemplo:
shutdown -h 21:45
Eso ejecutará shutdown -h
a las 21:45.
Para los comandos que no ofrecen esta funcionalidad, puede probar uno de los siguientes:
A. Usando en
El at
daemon está diseñado precisamente para esto. Dependiendo de su sistema operativo, es posible que deba instalarlo. En los sistemas basados en Debian, esto se puede hacer con:
sudo apt-get install at
Hay tres formas de dar un comando a at
:
-
Canalízalo:
$ 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
-
Guarde el comando que desea ejecutar en un archivo de texto y luego pase ese archivo a
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
-
También puedes pasar
at
comandos desde STDIN:$ at now + 1 min warning: commands will be executed using /bin/sh at> ls
Luego, presione Ctrl D para salir del
at
caparazón. Ells
El comando se ejecutará en un minuto.
Puede dar tiempos muy precisos en el formato de [[CC]YY]MMDDhhmm[.ss]
, como en
$ at -t 201403142134.12 < script.sh
Esto ejecutará el script script.sh
a las 21:34 y 12 segundos del 14 de marzo de 2014.
B. Usar cron (aunque no es una buena idea para apagar)
El otro enfoque es usar el cron
programador que está diseñado para realizar tareas en momentos específicos. Suele usarse para tareas que se van a repetir pero también se le puede dar un tiempo específico. Cada usuario tiene sus propios "crontabs" que controlan qué trabajos se ejecutan y cuándo. El formato general de un crontab es:
* * * * * 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)
Entonces, por ejemplo, esto ejecutará ls
todos los días a las 14:04:
04 14 * * * ls
Para configurar un cronjob para una fecha específica:
-
Cree un crontab nuevo ejecutando
crontab -e
. Esto abrirá una ventana de su editor de texto favorito. -
Agregue esta línea al archivo que acaba de abrir. Este ejemplo en particular se ejecutará a las 14:34 del 15 de marzo de 2014 si ese día es viernes (entonces, está bien, podría ejecutarse más de una vez):
34 14 15 5 /path/to/command
-
Guarde el archivo y salga del editor.
Esta respuesta SO sugiere una forma de ejecutarlo solo una vez, pero nunca lo he usado, así que no puedo responder por ello.
No, no puede especificar una fecha en el comando de apagado, pero existen dos alternativas:
shutdown +5
a una hora y día específicos:
echo "shutdown +5" | at 10:05am 2019-01-19
shutdown -r +1440
Apagará su sistema a las 12:00 :
$ sudo shutdown -h 12:00
Opciones:
-h, -P, --poweroff
Apague la máquina.
-r, --reboot
Reinicie la máquina.
-c
Cancele un apagado pendiente.