Respuestas:
Puede hacer esto directamente desde shutdown command
, ver man shutdown
:
SYNOPSIS
/sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[...]
time When to shutdown.
Así por ejemplo:
shutdown -h 21:45
Eso se ejecutará shutdown -h
a las 21:45.
Para los comandos que no ofrecen esta funcionalidad, puede probar uno de:
El at
demonio está diseñado precisamente para esto. Dependiendo de su sistema operativo, es posible que deba instalarlo. En sistemas basados en Debian, esto se puede hacer con:
sudo apt-get install at
Hay tres formas de dar un comando a at
:
Tubería:
$ 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 puede pasar at
comandos desde STDIN:
$ at now + 1 min
warning: commands will be executed using /bin/sh
at> ls
Luego, presione CtrlDpara salir del at
caparazón. El ls
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 el 14 de marzo de 2014.
El otro enfoque es utilizar el cron
planificador, que está diseñado para realizar tareas en momentos específicos. Por lo general, se usa para tareas que se repetirán, pero también 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 se ejecutará ls
todos los días a las 14:04:
04 14 * * * ls
Para configurar un cronjob para una fecha específica:
Cree un nuevo crontab 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 un viernes (entonces, OK, 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, por lo que no puedo garantizarlo.
shutdown
. Sin embargo, siento esa mala experiencia, que no podría haber sido agradable.
shutdown
programación y cron
en la misma respuesta ... Ya sea que se trate de una estación de trabajo o un servidor de correo de 1000 usuarios (mi triste experiencia) se trata más de las consecuencias de un mal hábito.
shutdown
, uno no debe incluir cron
. (especialmente con alguien que no sabrá por qué es una idea horrible.)
No, no puede especificar una fecha en el comando de apagado, pero existen dos alternativas:
1) Lo más fácil es usar el comando at . El siguiente ejemplo se ejecutará shutdown +5
a una hora y día específicos:
echo "shutdown +5" | at 10:05am 2019-01-19
2) si no le importa usar su calculadora y desea apagarla en 24 horas (24 * 60 = 1440 minutos) y está absolutamente seguro de que el sistema no se reiniciará entre:
shutdown -r +1440
at
comando.
at
no merece ninguna explicación. Puedo verte creer lo contrario. Mentes diferentes, puntos de vista diferentes.
shutdown
no permiten una especificación de fecha. Pero el conjunto de herramientas nosh es shutdown
compatible con la sintaxis BSD de larga data.
Apagará su sistema a las 12:00:
$ sudo shutdown -h 12:00
Opciones:
-h, -P, --poweroff
Apague la máquina.
-r, --reboot
Reinicia la máquina.
-c
Cancelar un cierre pendiente.