Sé que puede programar un apagado para un tiempo específico a través de shutdown -h 21:45y 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 sushutdownherramienta sea más capaz, con una sintaxis de décadas de antigüedad, en lugar de andar por las casassystemd-run.El
atcomando es para programar una ejecución futura.p.ej
(el "<EOT>" se produjo presionando control-D)
Puedes poner tu
shutdowncomando aquí.fuente
atcuando publiqué,atdefinitivamente está destinado a esto en general, aunque en una empresa el método aceptado puede seratocron, según las convenciones relacionadas con la gestión / implementación de la configuración.atTambién es capaz de tomar órdenes de un tubo:echo "echo yup > $(tty)" | at now.Si bien
ates 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
shutdowncomando.Los comandos van Smoorenburg, Upstart y systemd
shutdownno permiten una especificación de fecha. Pero elshutdowncomando 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
shutdowncomando la misma capacidad, extendiéndolo aCCYYMMDDHHMMNetBSD. 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
shutdownprogramas 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
shutdowncomando, 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
yearcampo en elcrontabcalendario