Programar un reinicio en un servidor Ubuntu ubicado de forma remota

17

Trabajo en un servidor ubuntu ubicado en un lugar donde generalmente no voy. Yo uso ssh sobre openvpn para acceder a él. La máquina tiene múltiples interfaces cableadas, muchas rutas estáticas y múltiples puertas de enlace predeterminadas a WAN. Con frecuencia cambio direcciones y rutas de la interfaz. La mayoría de las veces los cambios que hago son temporales: un reinicio restablecería los experimentos que he realizado. En algunos casos, algunas de esas modificaciones han salido mal y la máquina se ha desconectado. En tales casos, tuve que llamar a alguien en el lugar donde se encuentra el servidor para enviar la máquina a un reinicio.

Ahora me gustaría programar un reinicio; digamos que después de 2 horas, la máquina debería entrar en un ciclo de reinicio. Y en esas dos horas puedo hacer cualquier experimento temporal que quiera. Si todos los cambios temporales tienen éxito, entonces debería ser capaz de evitar que ocurra el reinicio "después de 2 horas". Entonces lo que quiero es:

  1. ¿Cómo decirle al servidor que reinicie después de un tiempo certian?
  2. Si decido que la máquina no debe reiniciarse, debería poder cancelarla.
nixnotwin
fuente

Respuestas:

14

En el tipo de terminal shutdown -r 10 Waiting 10 minutes before the restart&que hará que el servidor se reinicie en 10 minutos, transmita un mensaje explicando eso y presionando control + c interrumpirá la solicitud de reinicio.

En el tipo de terminal shutdown -r 18:00 Rebooting at 18:00 hours&que hará que el servidor se reinicie a las 18:00 horas, emitirá un mensaje explicando eso y puede ser interrumpido con control + c.

También puede interrumpir cualquier solicitud de apagado / reinicio en su terminal "en funcionamiento" con shutdown -a.

Bruno Pereira
fuente
2
Esto es un poco problemático ya que es interactivo y bloquea el shell que está ejecutando. No estoy seguro de si esto funcionaría previsiblemente sobre SSH si la sesión cae.
Alain O'Dea
No pude encontrar ninguna combinación de nohupy sudoeso haría que esto funcione si se ejecuta desde una sesión ssh normal como un usuario de grupo de administrador normal.
HDave
¿Podría esto ejecutarse en combinación con Screen para permitir que se aplique el comando y se elimine la sesión ssh?
Andy Davies
30

También puede usar atpara programar reinicios. Por ejemplo, sudo at 22:00para ejecutar el comando a las 22:00 como root. Luego ingrese el comando que desea ejecutar: /sbin/shutdown -r nowy termine con ctrl-d. Si decide no ejecutar este comando, ejecute sudo atrm 1para eliminar el primero de la atcola. Con sudo atqustedes podéis ver la cola.

kimda
fuente
¡Esta solución es perfecta!
Sukima
55
¡Esto debe ser marcado como la respuesta correcta! La atfamilia de comandos es algo que todo administrador de servidores debería saber.
HDave
2
en caso de que sea nuevo at, primero ejecute sudo at 22:00. Esto te lleva a una especie de caparazón. Luego ingresas el comando, y ctrl-dpara salir. Ver también mixeduperic.com/ubuntu/…
Tim Richardson