web-dev-qa-db-fra.com

Arrêtez le serveur Linux et allumez-le automatiquement à une heure précise.

J'ai une mission où le conférencier me demande de créer un script bash pour éteindre un serveur à 23h et l'activer à 6h. Je suis capable de le faire en utilisant Sudo shutdown -h 23:00 et cela fonctionne. Mais le problème est que je ne sais pas comment l’activer automatiquement à 6 heures du matin, je n’ai trouvé aucune commande capable de le faire. Toute aide serait appréciée.

8
JLWK

Vous devez d’abord vérifier si vous pouvez utiliser le RTC wakealarm pour réactiver votre système:

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

Maintenant, vérifiez:

cat /proc/driver/rtc

Cela devrait renvoyer une liste de paramètres. Vérifiez le alrm_time dans 3 minutes et le alrm_date aujourd’hui.

Si cela fonctionne, créez un script /usr/local/sbin/shutwake:

#!/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

Enfin, éditez votre utilisateur crontab , tapez crontab -e et ajoutez la ligne suivante:

0 23 * * * /usr/local/sbin/shutwake
9
Sylvain Pineau