Administración de energía: servidor de suspensión / activación cuando se accede

9

Tengo un HP Proliant Microserver sin cabeza con ubuntu instalado. Esta máquina tiene recursos compartidos de samba que sirven a los medios y usualmente rdp o ssh en ella. Ahora mi problema es que quiero que la máquina entre en modo de suspensión (para que el estado se guarde de la memoria RAM al disco duro) y parecerá que se apaga después de una hora de inactividad.

Si hay algún intento de acceder al recurso compartido de samba a través de LAN, me gustaría que se active. Ahora mi placa base admite esta función, ¿alguien puede señalarme en la dirección correcta para lograr esto fácilmente?

Gracias

KP65
fuente

Respuestas:

3

La mejor instrucción que encontré en la web fue la wiki de XBMC para WOL . En resumen (más información en el enlace):

  1. Necesita habilitar WOL en su placa base;
  2. Instalar ethtool: sudo apt-get install ethtool;
  3. Establecer Wake-on-LAN opciones: sudo ethtool -s eth0 wol g;
  4. Habilítelo al inicio del sistema con un script de inicio. Hay un guión de inicio en el enlace wiki.

No probado información del enlace wiki

Rinzwind
fuente
2

Más allá del modo de suspensión, lo que está buscando es hibernar, ya que desea guardar su estado en su disco duro y apagar completamente el servidor.

Entonces, como muchos han señalado, la respuesta es WOL (Wake On Lan). Hay muchos tutoriales al respecto, pero principalmente debes configurar lo siguiente:

  • Su enrutador debe omitir el paquete mágico (como se llama el paquete WOL) a su servidor, por lo que debe realizar el reenvío de puertos. Por lo general, se encuentra en la sección LAN. Los puertos predeterminados son 7 y 9.
  • Su placa base debe estar escuchando en el puerto LAN cuando está apagada. La mayoría de los MB modernos ofrecen esta función, pero está deshabilitada de forma predeterminada. ¡Revisalo! En mi caso, se llama "Power on by Ring on Lan".

El servidor no necesita más ajustes que la configuración de administración de energía adecuada para apagar el sistema después de una hora de inactividad (se puede hacer desde Sistema> Administración> Administración de energía).

Obviamente, debe esperar un tiempo después de enviar el paquete WOL, ya que su sistema necesita deshibernar y podría tomar algunos.

Buena suerte

sergio.hs84
fuente
2

Decidí que quería una solución para activar mi servidor de medios automáticamente cuando se accedía que no dependía de dd-wrt.

Tengo un raspberry pi, así que lo usé porque es de baja potencia y no me importa mantenerlo encendido todo el tiempo, por supuesto, podría ejecutarse desde cualquier máquina Linux.

La solución final que encontré para mí fue escribir un pequeño script bash. Las dependencias raspberry-pi son etherwake y tcpdump. Ambos no están instalados por defecto en rasbian. También en el servidor, Wake On Lan debe habilitarse como se menciona en las otras publicaciones.

sudo apt-get install etherwake
sudo apt-get install tcpdump

El script de estela es el siguiente:

nano ~/wol.sh

Entonces:

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

La idea principal es que se ejecuta desde mi raspberry-pi que activará el servidor si nota una sola solicitud de arp para el servidor. Si el servidor está despierto, entonces no estará escuchando una solicitud arp, sino que enviará algunos pings de vez en cuando para asegurarse de que todavía esté despierto.

Llamé al archivo wol.sh y lo hice ejecutable. Luego póngalo en el sudo crontab para iniciar @reboot como root. Esto es para tcpdump que necesita acceso elevado para escuchar eth0 y etherwake.

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

agrega esto al final

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

Con WoL habilitado en su servidor para que se active con un tráfico de protocolo específico, necesitaría algo como un script que se ejecuta en su enrutador que tiene reglas de paquete y puede enviar el paquete mágico de WoL cuando recibe la solicitud.

Ejemplo de activación del servidor web

Cas
fuente
0

Wake On Lan es la clave, casi todas las tarjetas de hoy son compatibles con todos los modos (pero no en Linux :().

La solución más fácil es una tarjeta que tenga un controlador Linux que sea compatible con los modos Wake On Lan: pumbgen ethtool, desea algo como el modo unicast. Entonces su computadora se inicia tan pronto como accede a su dirección de red. Pero es aún más difícil obtener una lista de tarjetas compatibles con Linux, una que he encontrado es Intel Gigabit Netzwerkadapter Pro / 1000 GT PCI.

Una solución alternativa es, si tiene una tarjeta que no admite todos los modos: Casi todos los controladores de Linux admiten el modo g => paquete mágico. Por lo tanto, debe encender explícitamente su servidor antes de usarlo.

aha
fuente