Sé que puede programar un apagado para un tiempo específico a través de shutdown -h 21:45
y que no debe usar crontabs para tales cosas debido a su naturaleza repetitiva. ¿Cómo puedo programar un cierre para una fecha específica como el 31 de agosto a las 20:00 p.m.?
11
shutdown
. Como escribí en otra respuesta, ustedes que quieran esto podrían tratar de persuadir a las personas del sistema para que hagan que sushutdown
herramienta sea más capaz, con una sintaxis de décadas de antigüedad, en lugar de andar por las casassystemd-run
.El
at
comando es para programar una ejecución futura.p.ej
(el "<EOT>" se produjo presionando control-D)
Puedes poner tu
shutdown
comando aquí.fuente
at
cuando publiqué,at
definitivamente está destinado a esto en general, aunque en una empresa el método aceptado puede serat
ocron
, según las convenciones relacionadas con la gestión / implementación de la configuración.at
También es capaz de tomar órdenes de un tubo:echo "echo yup > $(tty)" | at now
.Si bien
at
es la forma obvia de hacer esto, creo que sobrevivirá a los apagados, por lo que si la máquina se reinicia antes del apagado programado, podría apagarse nuevamente a la hora programada. Por lo tanto, usando bash y GNU date podemos usar un apagado retrasado./sbin/shutdown +$(( ( $( date -d "30 may 2019 13:15" +%s ) - $( date +%s ) ) / 60 + 1 ))
NB: Esto solo es preciso hasta un minuto. Funciona convirtiendo el tiempo programado, y ahora a segundos desde la época de UNIX, calculando la diferencia, convirtiendo a minutos y luego usándolo como el retraso para el apagado. No funcionará correctamente si la hora programada es pasada.
fuente
Usas un mejor
shutdown
comando.Los comandos van Smoorenburg, Upstart y systemd
shutdown
no permiten una especificación de fecha. Pero elshutdown
comando BSD toma un valor de fecha en su especificación de cuándo cerrar, en el formularioyymmddhhmm
. Este ha sido el caso desde 4BSD, y lo sigue siendo con FreeBSD y OpenBSD. NetBSD lo extendió accyymmddhhmm
.Debido a que el conjunto de herramientas nosh también se puede usar en los BSD, le di a mi
shutdown
comando la misma capacidad, extendiéndolo aCCYYMMDDHHMM
NetBSD. Y debido a que el conjunto de herramientas nosh también se puede usar en Linux, eso le da a Linux un comando de apagado que toma fechas.Por supuesto, funciona con la nariz
system-manager
. También funciona con algunos otros sistemas. Envía señales al proceso n. ° 1 para promulgar cosas y algunos otros administradores de sistemas entienden las mismas señales, por ejemplosystemd
, que también se pueden apagar al usarlo.Podrías usarlo, o una herramienta como esta; o podría tratar de persuadir a los autores de otros
shutdown
programas de Linux para que extiendan sus herramientas para que sean tan capaces como el BSDshutdown
.Otras lecturas
shutdown
. páginas del manual de nosh toolset. Softwaressystem-manager
. páginas del manual de nosh toolset. Softwaresshutdown
. Manual del administrador del sistema . Páginas del manual de NetBSD. 2011-11-04.shutdown
. Manual del administrador del sistema FreeBSD . 2018-01-01.shutdown
. Páginas del manual de OpenBSD. 2015-01-21.fuente
Para ejecutar el trabajo solo este año:
Para ejecutar el trabajo todos los años:
fuente
Puede haber una opción para ingresar el año al
shutdown
comando, pero cron se puede usar para ejecutar comandos solo una vez en un momento específico. Para su ejemplo, intenteCuidado: lo anterior no es la sintaxis cron estándar.
fuente
year
campo en elcrontab
calendario