Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/06/2011, à 01:25

Cypher5762

[résolu]mise en veille après inactivité ubuntu server

Bonjour à tous, voilà je cherche un moyen qui permettrait de mettre en veille un serveur après inactivité sans devoir installer gnome. J'ai pas mal chercher sur internet mais je n'ai pas trouvé. J'avais installé le paquet sleepd qui fonctionne le seul hic, c'est qu'il prend en compte uniquement l'activité du clavier local et comme j'utilise mon serveur au travers de NFS et de SSH, ça n'est pas pris en compte par sleepd. Pouvez vous m'aider svp ? Merci d'avance.

Dernière modification par Cypher5762 (Le 05/06/2011, à 16:43)

Hors ligne

#2 Le 05/06/2011, à 16:39

Cypher5762

Re : [résolu]mise en veille après inactivité ubuntu server

Bon ben vu qu'apparemment c'est pas possible de mettre en veille le serveur en cas d'inactivité sans passé par gnome, j'ai donc crée une méthode qui permet de le faire :

1 - Je crée un script (verif_activite.sh) qui va vérifier l'activité du réseau sur les protocoles NFS et SSH (il est possible de mettre d'autre protocole selon le besoin). Je met ensuite le résultat dans un fichier (ici il s'appelle activite.txt). S'il y a une activité réseau, je place la lettre y dans le fichier sinon je ne fais rien (par défaut j'ai placé un n) :

#!/bin/bash

#SSH se trouve sur le port 5762 chez moi
connexionSSH=$(netstat | grep -c 5762)
connexionNFS=$(netstat | grep -c nfs)

if [ $connexionSSH -ne 0 ] || [ $connexionNFS -ne 0 ]
then

echo "y" > /home/activite.txt

fi

exit 0

2- Je met ensuite le script dans un crontab de manière à ce qu'il s’exécute toute les minutes

sudo su
crontab -e
* * * * * sh /home/verif_activite.sh

3 - Je crée ensuite un script (verif_veille.sh) qui va vérifier le contenu du fichier activite.txt. S'il y a un y, c'est qu'il y a eu une activité sur le réseau, on remet alors la lettre n dans le fichier activite.txt. S'il y a un n c'est qu'il n'y a pas eu d'activité sur le réseau et donc on met en veille l'ordinateur.

#!/bin/bash

activite=$(cat /home/activite.txt)

if [ $activite = "n" ]
then
    /usr/sbin/pm-suspend
else
    echo "n" > /home/activite.txt
fi

exit 0

4 - Je place ensuite le script dans un crontab qui va s’exécute toute les heures (00h01,01h01,02h01,03h01,...). Il est possible de modifier la durée de de vérification d'inactivité en modifiant la valeur du crontab pour ce script.

sudo su
crontab -e
1 * * * * sh /home/verif_veille.sh

Note : Il faut que les scripts appartiennent à root et qu'ils disposent des droits d’exécution pour fonctionner.

Lorsque l'ordinateur est en veille vous pouvez utiliser wakeonlan pour réveiller l'ordinateur.

Dernière modification par Cypher5762 (Le 06/06/2011, à 02:14)

Hors ligne