cierre en una fecha específica

cierre en una fecha específica

Sé que puedes programar un apagado para un tiempo específico shutdown -h 21:45y que no deberías usar crontabs para tales cosas debido a su naturaleza repetitiva. ¿Cómo puedo programar un apagado para un sistema específico?fecha¿Como el 31 de agosto a las 20:00 h?

Respuesta1

El atcomando sirve para programar ejecuciones futuras únicas.

p.ej

% at 8pm Aug 31
at> echo hello
at> <EOT>
job 161 at Sat Aug 31 20:00:00 2019

(el "<EOT>" se produjo presionando control-D)

% atq
161     Sat Aug 31 20:00:00 2019 a sweh

Puedes poner tu shutdowncomando aquí.

Respuesta2

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, es posible que se apague 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 sólo tiene una precisión de un minuto. Funciona convirtiendo la hora programada, y ahora a segundos desde la época de UNIX, calculando la diferencia, convirtiéndola a minutos y luego usando esto como retraso para apagar. No funcionará correctamente si la hora programada ya pasó.

Respuesta3

Las versiones recientes de Ubuntu usan systemd y cuando el programador convencional atdy asociado atpara comandos únicos no está instalado o no se está ejecutandose puede programar un comando único consystemd-run que es algo más fácil que generar manualmente unsystemd timer:

 systemd-run --on-calendar="2019-08-31 20:00:00 CET" /sbin/shutdown now

Respuesta4

Para ejecutar el trabajo sólo este año:

0 20 31 8 * test $(/bin/date +\%Y) = "2019" && /sbin/shutdown now

Para ejecutar el trabajo cada año:

0 20 31 8 * /sbin/shutdown now

información relacionada