apague el servidor Linux y enciéndalo automáticamente a una hora específica

8

Tengo una tarea en la que el profesor me pide que cree un script bash para cerrar un servidor a las 11 p.m. y encenderlo a las 6 a.m. Puedo hacerlo usando sudo shutdown -h 23:00y funciona. Pero el problema es que no tengo idea de cómo encenderlo automáticamente a las 6 am, no pude encontrar ningún comando que pudiera hacer eso. Cualquier ayuda sería apreciada.

JLWK
fuente
¿Está seguro de que su tarea le pide que apague toda la máquina (y vuelva a encenderla), o solo un proceso de servidor? Obviamente, la máquina física necesita estar encendida para hacer cualquier cosa.
Jos
Para ser honesto, no tengo idea también, también pensé que esto sería imposible. El profesor está siendo muy vago en el informe de la tarea y también me está volviendo loco.
JLWK

Respuestas:

10

Primero debe verificar si puede usar la alarma RTC wakealarm para reactivar su sistema:

sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
sudo sh -c "echo `date '+%s' -d '+ 3 minutes'` > /sys/class/rtc/rtc0/wakealarm"
cat /sys/class/rtc/rtc0/wakealarm

Revisa ahora:

cat /proc/driver/rtc

Esto debería devolver una lista de parámetros. Verifique que alrm_timefaltan 3 minutos para el futuro y alrm_datehoy.

Si funciona bien, cree un /usr/local/sbin/shutwakescript:

#!/bin/bash 
sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm" 
sh -c "echo `date '+%s' -d '+ 7 hours'` > /sys/class/rtc/rtc0/wakealarm" 
shutdown -h now

Finalmente edite su crontab de usuario , escriba crontab -ey agregue la siguiente línea:

0 23 * * * /usr/local/sbin/shutwake
Sylvain Pineau
fuente
Depende de la configuración del reloj del BIOS, verifique /etc/default/rcSsi UTC está configurado o no.
Sylvain Pineau
Bueno, intenté exactamente lo mismo que escribiste arriba. No funcionó :(. -Debian 8
Bálint Pap