Gerenciamento de energia - Servidor Sleep / Wake up quando acessado

9

Eu tenho um HP Proliant Microserver headless com o Ubuntu instalado. Esta máquina tem compartilhamentos de samba servindo mídia e eu geralmente rdp ou ssh nela. Agora, meu problema é que quero que a máquina entre no modo de suspensão (para que o estado seja salvo da memória RAM no disco rígido) e parecerá que ela está desligada após uma hora de inatividade.

Se houver alguma tentativa de acessar o compartilhamento de samba através da LAN, eu gostaria que ele fosse ativado. Agora minha placa-mãe suporta esta função, alguém pode me apontar na direção certa para conseguir isso facilmente?

Obrigado

    
por KP65 17.05.2011 / 11:06

5 respostas

3

A melhor instrução que encontrei na web foi o wiki XBMC para WOL . Em suma (mais informações no link):

  1. Você precisa ativar o WOL na sua placa-mãe;
  2. Instale o ethtool: sudo apt-get install ethtool ;
  3. Definir opções de Wake-on-LAN: sudo ethtool -s eth0 wol g ;
  4. Coloque-o na inicialização do sistema com um script de inicialização. Há um script de inicialização no link do wiki.

não testado; informações do link do wiki

    
por Rinzwind 17.05.2011 / 11:48
2

Além do modo de suspensão, o que você está procurando é o modo de hibernação, pois você deseja salvar seu estado no disco rígido e desligar completamente o servidor.

Assim, como muitos apontaram, a resposta é WOL (Wake On Lan). Há muitos tutoriais sobre isso, mas principalmente você precisa configurar o seguinte:

  • Seu roteador tem que ignorar o pacote mágico (como o pacote WOL é chamado) para o seu servidor, então você precisa fazer o encaminhamento de porta. Geralmente está localizado na seção LAN. As portas padrão são 7 e 9.
  • Sua placa-mãe precisa estar ouvindo na porta LAN quando estiver desligada. A maioria dos MBs modernos fornece esse recurso, mas está desabilitada por padrão. Verifique-o! No meu caso, é chamado de "Power on by Ring on Lan".

O servidor não precisa de mais configurações do que a configuração de gerenciamento de energia adequada para desativar o sistema após uma hora de inatividade (isso pode ser feito em Sistema > Administração > Gerenciamento de energia).

Obviamente, você tem que esperar um pouco depois de enviar o pacote WOL, já que seu sistema precisa des hibernar e pode demorar um pouco.

Boa sorte

    
por sergio.hs84 03.12.2012 / 11:16
2

Eu decidi que queria uma solução para ativar o meu servidor de mídia automaticamente quando acessado, o que não dependia do dd-wrt.

Eu tenho um pi de framboesa, então eu usei porque é de baixa potência e não me importo de mantê-lo ligado o tempo todo, é claro que ele pode ser executado em qualquer máquina linux.

A solução final que encontrei para mim foi escrever um pequeno script bash. As dependências do raspberry-pi são etherwake e tcpdump. Ambos não são instalados por padrão no rasbian. Também no servidor, o Wake On Lan precisa ser ativado conforme mencionado nos outros posts.

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

O script de ativação é o seguinte:

nano ~/wol.sh

Então:

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

A idéia principal é que ele é executado a partir do meu pi-framboesa, que irá acordar o servidor se notar uma única solicitação arp para o servidor. Se o servidor estiver acordado, ele não estará ouvindo uma solicitação de arp, mas enviará alguns pings de vez em quando para ter certeza de que ainda está ativo.

Eu nomeei o arquivo wol.sh e o tornei executável. Em seguida, coloque-o no sudo crontab para iniciar o @reboot como root. Isso é para o tcpdump que precisa de acesso elevado para ouvir eth0 e etherwake.

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

adicione isso ao final

@reboot sh /home/pi/wol.sh > /dev/null
    
por Travis Clark 22.09.2014 / 19:48
0

Com o WoL ativado em seu servidor para que ele acesse o tráfego de protocolo específico, você precisará de algo como um script em execução no roteador que tenha regras de pacote e possa enviar o pacote mágico de WoL quando receber a solicitação.

Ativação do servidor Web exemplo

    
por Cas 18.05.2011 / 19:08
0

Wake On Lan é a chave, quase todas as placas hoje suportam todos os modos (mas não no linux :().

A solução mais fácil é uma placa que possui um driver Linux funcional que suporta os modos Wake On Lan: pumbg in ethtool , você quer algo como o modo unicast. Portanto, seu computador é iniciado assim que você acessa seu endereço de rede. Mas é ainda mais difícil obter uma lista de placas suportadas pelo Linux, uma que eu descobri é o Intel Gigabit Netzwerkadapter Pro / 1000 GT PCI.

Uma solução alternativa é, se você tiver um cartão que não suporte todos os modos: Quase todo o driver linux suporta o modo g = > pacote mágico. Então você tem que ativar seu servidor antes de usá-lo.

    
por aha 17.03.2013 / 05:02