Forum Linux.noyau wakeonlan et hibernation

Posté par . Licence CC by-sa
2
6
fév.
2015

Bonjour à tous,
je gère un petit parc informatique, qui se compose d'un serveur et de 4 pc pour une asso,
Les pc allument le serveur via un wakeonlan là facile :).
quand le serveur est allumé je souhaite l'éteindre quand toutes les autres machines sont éteintes et là moins facile :(

Je pourrais lancer un script toutes les heures qui scan le réseau à la recherche de PC connectés

mais y'a t il plus simple ?

  • # Pas mieux

    Posté par . Évalué à 3.

    Le script qui vérifie la présence (un simple ping/fping suffit) des machines à intervalle régulier me semble le plus simple.
    L'alternative serait que les machines informent le serveur de leur état mais ça serait plus (pas beaucoup) complexe à mettre en place et pas vraiment plus efficace.
    Ou alors il faut regarder du coté de la découverte du voisinage (avec ip n, par exemple) mais ce ne sera pas aussi fiable qu'une vérification active (et puis une volée de ping ça ne coûte pas grand chose).

    • [^] # Re: Pas mieux

      Posté par (page perso) . Évalué à 3.

      On doit pouvoir faire simple et rapide sur un petit réseau (sans VLAN) avec un simple fping suivis d'un arp (avec une petite tempo entre les deux…).

  • # Dernier client allumé

    Posté par . Évalué à 0.

    Bonjour,

    Et pourquoi ne pas ajouter un script sur chaque client qui lors de l'arrêt regarde si les 3 autres petits camarades sont allumés et s'ils sont éteint, il envoie un shutdown au serveur. Comme ça lorsque le dernier client s'éteint, le serveur s'éteint dans la foulée. Donc pas besoin de le laisser tourner plusieurs minutes/heures l'instant que le script ajouté dans le cron fasse son job.

    • [^] # Re: Dernier client allumé

      Posté par . Évalué à 3.

      Mauvaise idée pour au moins 2 raisons :
      - tu ne prends pas en compte les arrêts intempestifs (oui, même sous Linux, une machine peut se vautrer)
      - tu donnes aux clients le droit d'éteindre le serveur, ce qui pourrrait donner des idées à des petits malins.

      • [^] # Re: Dernier client allumé

        Posté par . Évalué à 0.

        • Un arrêt intempestif n'arrêtera pas le serveur puisque le script ne sera pas exécuté. Donc forcément après un plantage le client va relancer sa machine pour continuer à bosser.

        • Même si un utilisateur est mal intentionné, il ne pourra pas nuire aux autres. Puisque si un autre utilisateur bosse sur sa machine le serveur ne sera pas éteint par la machine de l'utilisateur mal intentionné…

        • [^] # Re: Dernier client allumé

          Posté par . Évalué à 2.

          Un arrêt intempestif n'arrêtera pas le serveur puisque le script ne sera pas exécuté. Donc forcément après un plantage le client va relancer sa machine pour continuer à bosser.

          Oui, mais dans le cas ou le client se plante et n'est pas démarré, le serveur n'est pas arrêté.

          Même si un utilisateur est mal intentionné, il ne pourra pas nuire aux autres. Puisque si un autre utilisateur bosse sur sa machine le serveur ne sera pas éteint par la machine de l'utilisateur mal intentionné…

          Et comment empêches-tu ça ?

          • [^] # Re: Dernier client allumé

            Posté par . Évalué à 2.

            Et comment empêches-tu ça ?

            parce que le script qui va eteindre le serveur doit d'abord pinguer ses copains pour savoir s'ils sont allumés.

            donc il n'y a que le dernier PC allumé qui peut eteindre le Serveur.

            • [^] # Re: Dernier client allumé

              Posté par . Évalué à 2.

              Tu supposes que le client passera automatiquement par le script pour éteindre le serveur ? Moi non.

              • [^] # Re: Dernier client allumé

                Posté par . Évalué à 2.

                je ne crois pas que l'utilisateur le fasse, c'est exact,

                mais quelques soit le PC, il y a toujours un 'logoff script' possible, meme avec un windows
                et avec des linux, ca se rajoute des les initlevel

              • [^] # Re: Dernier client allumé

                Posté par . Évalué à 0.

                Non je ne pensais pas non plus faire faire ça par l'utilisateur.
                Mais plutôt de mettre ça en place dans les tâches d'extinction de l'ordinateur…

                • [^] # Re: Dernier client allumé

                  Posté par . Évalué à 2.

                  Dans ce cas, personnellement, je suis un peu parano, et je ferais un peu différement. Je mettrais dans les taches d'extinction un script qui préviens le serveur que leclient s'éteint, puis le serveur vérifie lui-même que d'autres clients ne sont pas encore allumés avant de s'éteindre. On ajoute à ca un contrôle périodique (toute les 15 mn par exemple) pour ne pas rater les clients qui ne sont pas passés par une phase d'extinction propre (comme je ne connais pas le contexte, je suppose être en présence d'utilisateurs qui pourraient décider d'éteindre la machine en débranchant le cable d'alim).

                • [^] # Re: Dernier client allumé

                  Posté par . Évalué à 2.

                  Non je ne pensais pas non plus faire faire ça par l'utilisateur.

                  Moi non plus, mais donner les droits à un client de pouvoir éteindre un serveur me parait "risqué" : une faille ou un problème de configuration pourrait permettre à un utilisateur d'élever ses privilègess et d'éteindre le serveur. Certes ce n'est pas fréquent, mais ça arrive assez souvent pour m'inciter à être prudent (et les découvertes de ces derniers temps en matière de sécurité me confortent dans cette approche).

                  • [^] # Re: Dernier client allumé

                    Posté par . Évalué à 0.

                    Ba ce cas alors, c'est le serveur tout seul qui fait le taff.

                    • [^] # Re: Dernier client allumé

                      Posté par . Évalué à 2.

                      autre piste, si c'est un serveur, il y a des connexions ouvertes, visibles avec netstat -puant | grep EST
                      un ou deux grep /cut/awk pour eliminer les connexions du serveur sur lui meme, et tu sais si des connexions sont encore actives.

                      evidemment cela peut arreter le serveur alors qu'un client est juste "non connecté"
                      et donc provoquer un arret non souhaité
                      à ce moment là, il devra faire un wakeonlan pour le rallumer

  • # le dernier appuie sur le bouton...

    Posté par . Évalué à 3.

    un serveur ca reste un PC comme un autre,
    tu peux programmer la mise en veille, voire l'hybernation.

    sinon tu peux simplement demander au dernier d'eteindre le serveur, comme il devra eteindre son PC, la lumiere et fermer le local de l'asso.

    • [^] # Re: le dernier appuie sur le bouton...

      Posté par . Évalué à 1.

      oui c'est aussi une très bonne idée mais elle n'est pas très fun :)
      j'ai encore quelques problèmes avec l’installateur automatique debian (le preseed.cfg)
      une fois ces problèmes réglés je me penche sérieusement sur la question

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.