Coloque o servidor Linux em suspensão e acorde usando pacotes WOL

4

Estou procurando uma maneira de colocar meu servidor doméstico Linux em modo de espera após um período sem nenhuma atividade de rede de "pulsação". Eu gostaria de usar pacotes WOL como um sinal de batimento cardíaco. Esses pacotes serão enviados por vários clientes, cada um com um intervalo de, digamos, a cada 15 minutos.

Um exemplo real é, portanto, mais do que bem-vindo.

    
por Rui F Ribeiro 26.10.2012 / 12:22

3 respostas

1

Aqui estão algumas maneiras fáceis para o seu servidor verificar se outros dispositivos o estão usando:

  • Verifique o cache de arp usando /usr/sbin/arp ou lendo /proc/net/arp . Você verá todos os dispositivos com os quais o servidor se comunicou recentemente. Isso inclui o endereço MAC, para que você possa encontrar seu telefone, etc. mesmo em frente ao DHCP.
  • Use ping (ou arping, que não será bloqueado por firewalls baseados em host) para pesquisar ativamente seus hosts.
  • Configure as regras do iptables para corresponder aos hosts nos quais você está interessado e, em seguida, verifique os contadores de pacotes. Se os contadores estiverem aumentando, esses hosts estarão ativos.

Todos esses são factíveis com scripts bastante simples. Você pode então fazer com que o script coloque seu servidor no S3, S4 ou até mesmo no G2 / S5 e deixe o Wake-on-LAN ativar o servidor novamente.

NOTA: Em muitas placas de desktop, o S3 não economiza muita energia. Medir antes de se incomodar. Ou certifique-se de usar pelo menos S4.

    
por 26.10.2012 / 17:58
1
#!/bin/bash
while
  true
do
  shutdown -c
  shutdown -h +15 &
  echo "Waiting for magic packet to continue ..."
  nc -l 9
done

Conforme solicitado, aqui está a documentação ausente. Tarde, mas talvez ainda seja útil:

O loop cancela o comando anterior de desligamento e define um novo para 15 minutos. Em seguida, ele abre a porta 9 com o utilitário NetCat . Se um pacote nessa porta for recebido, o loop será reiniciado, caso contrário, o computador será desligado.

    
por 22.01.2014 / 18:19
0

Você pode colocar seu servidor em suspensão com s2disk e s2ram . A questão when? é sua. Você pode executar algumas tarefas cron e executar ping em alguns IPs quando eles não atenderem e, em seguida, entrar no modo de suspensão. Ou o que nunca.

Com ferramentas como etherwake ou wakeonlan você pode ativar uma máquina do modo de espera enviando um pacote magic para a rede.

Boas leituras Wake-on-LAN

    
por 22.01.2014 / 21:20