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.


¿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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.