web-dev-qa-db-fra.com

Gestion de l'alimentation - Serveur de veille / réveil lors d'un accès

J'ai un HP Proliant Microserver sans tête avec Ubuntu installé. Cette machine a des partages samba sur elle servant de média et j'utilise habituellement rdp ou ssh. Maintenant, le problème est que je souhaite que la machine passe en mode veille (l’état est alors sauvegardé de la mémoire vive sur le disque dur) et il semblera qu’elle est éteinte après une heure de marche au ralenti.

S'il y a une tentative d'accès au partage de samba via le réseau local, j'aimerais que cela se réveille. Maintenant, ma carte mère prend en charge cette fonction. Quelqu'un peut-il m'indiquer la voie à suivre pour y parvenir facilement?

Merci

9
KP65

La meilleure instruction que j'ai trouvée sur le Web était la wiki XBMC pour WOL . En bref (plus d'infos dans le lien):

  1. Vous devez activer WOL sur votre carte mère.
  2. Installez ethtool: Sudo apt-get install ethtool;
  3. Définissez les options de réveil sur réseau local: Sudo ethtool -s eth0 wol g;
  4. Activez-le au démarrage du système avec un script init. Il y a un script d'init dans le lien wiki.

Non testé; info du lien wiki

3
Rinzwind

J'ai décidé que je voulais une solution pour réveiller automatiquement mon serveur multimédia lors de l'accès, qui ne dépendait pas de dd-wrt.

J'ai un Raspberry Pi, je l'ai donc utilisé parce qu'il consomme très peu d'énergie et que cela ne me dérange pas de le garder allumé en permanence, bien sûr, il pourrait être exécuté à partir de n'importe quel ordinateur Linux.

La solution finale que j'ai trouvée est d'écrire un petit script bash. Les dépendances raspberry-pi sont etherwake et tcpdump. Les deux ne sont pas installés par défaut sur rasbian. Également sur le serveur, Wake On Lan doit être activé comme mentionné dans les autres publications.

Sudo apt-get install etherwake
Sudo apt-get install tcpdump

Le script de réveil est le suivant:

nano ~/wol.sh

Ensuite:

#!/bin/bash

pingInterval=60 #time interval, in seconds, between checks that the server is still awake.
target=192.168.x.x  #WOL target ip address
targetMAC=00:11:22:33:44:55  #WOL target MAC

wake () {
    tcpdump -i eth0 -c 1 -p Host $target
    etherwake $targetMAC
    #echo WOL sent to $target at $targetMAC
return
}

while sleep $pingInterval; do
varPing=`ping -s 1 -c 2 $target > /dev/null; echo $?`
    if [ $varPing -eq 0 ]; then
        #echo ping success
    else
        #echo ping fail
        wake
    fi
done

L'idée principale est qu'il est exécuté à partir de mon framboise-pi, ce qui réveillera le serveur s'il remarque une seule requête arp pour le serveur. Si le serveur est réveillé, il ne sera pas à l'écoute d'une requête arp mais enverra quelques pings de temps en temps pour s'assurer qu'il est toujours réveillé.

J'ai nommé le fichier wol.sh et je l'ai rendu exécutable. Puis placez-le dans la crontab de Sudo pour lancer @reboot en tant que root. C'est pour tcpdump qui a besoin d'un accès élevé pour écouter eth0 et etherwake.

Sudo chmod +x /home/pi/wol.sh
Sudo crontab -e

ajoutez ceci au bas

@reboot sh /home/pi/wol.sh > /dev/null
2
Travis Clark

En plus du mode veille, vous recherchez une mise en veille prolongée, car vous souhaitez enregistrer votre état sur votre disque dur et arrêter complètement le serveur.

Ainsi, comme beaucoup l'ont souligné, la réponse est WOL (Wake On Lan). Il existe de nombreux tutoriels à ce sujet, mais vous devez principalement configurer les éléments suivants:

  • Votre routeur doit contourner le paquet magique (comme le paquet WOL est appelé) sur votre serveur, vous devez donc effectuer la redirection de port. Il est généralement situé dans la section LAN. Les ports par défaut sont 7 et 9.
  • Votre carte mère doit écouter sur le port LAN lorsqu'elle est éteinte. La plupart des MB modernes offrent cette fonctionnalité, mais sont désactivés par défaut. Vérifie ça! Dans mon cas, cela s'appelle "Power on by Ring on Lan".

Le serveur n'a pas besoin de plus de paramètres que la configuration de gestion de l'alimentation appropriée pour mettre le système hors tension après une heure d'inactivité (vous pouvez le faire depuis Système> Administration> Gestion de l'alimentation).

De toute évidence, vous devez attendre un certain temps après avoir envoyé le paquet WOL, car votre système doit être mis en veille prolongée et cela peut prendre quelques minutes.

Bonne chance

2
sergio.hs84

Wake On Lan est la clé, presque toutes les cartes supportent aujourd'hui tous les modes (mais pas sous linux :().

La solution la plus simple est une carte dont le pilote Linux fonctionne et prend en charge les modes Wake On Lan: pumbgin ethtoolname__, vous voulez quelque chose comme le mode unicast. Votre ordinateur démarre donc dès que vous accédez à son adresse réseau. Mais il est encore plus difficile d’obtenir une liste des cartes prises en charge par Linux, comme celle que j’ai trouvée: Intel Gigabit Netzwerkadapter Pro/1000 GT PCI.

Une solution consiste à utiliser une carte qui ne prend pas en charge tous les modes: Presque tous les pilotes Linux prennent en charge le mode g => paquet magique. Vous devez donc explicitement allumer votre serveur avant de l’utiliser.

0
aha

Avec WoL activé sur votre serveur pour le réveiller avec un trafic de protocole spécifique, vous auriez besoin de quelque chose comme un script exécuté sur votre routeur qui a des règles de paquet et peut envoyer le paquet magique WoL quand il reçoit la demande.

Réveil du serveur Web exemple

0
Cas