segunda-feira, 30 de julho de 2012

Wake on lan e auto shutdown

Wake on lan e auto shutdown

Auto shutdown

O autoshutdown é simples, basta colocar o comando no crontab, mas esqueço-me sempre que os comandos no crontab precisam do caminho completo, porque a PATH é mais limitada.
Basta editar (como root) o crontab com:

crontab -e

E acrescentar uma linha do tipo:

00 03 * * * /sbin/shutdown -h +5

Isto vai fazer com que o computador se desligue às 3:05 da manhã, dando um aviso com 5 minutos de antecedência.

Wake on LAN

O Wake on LAN não é uma opção muito segura. Apesar de haver extensões ao protocolo original que acrescentam autenticação, o WOL original é muito inseguro. Mesmo assim pode dar jeito em casa :)
O computador deve ser configurado na BIOS para suportar o Wake on LAN. Nem todas as BIOS o suportam, nem todas as interfaces de rede o suportam e a forma como aparece na BIOS pode ser muito variada. Pode aparacer mesmo como "Wake on LAN" ou "Wake on PCI event" ou "Wake on PCI-E event" ou qualquer coisa parecida.
Mesmo assim pode ainda não ser suficiente para que o WOL funcione. O sistema operatvo também tem de colaborar. No Windows isso faz-se nas propriedades avançadas da interface de rede. No linux faz-se com o ethtool.
Para verificar se a interface de rede suporta Wak on LAN basta executar (como root):

ethtool eth0|grep Wake

Se não aparecer nada significa que a interface não suporta WOL.
Para assegurar que o linux habilita o WOL criei um script em /etc/network/if-ip.d/wolenable, com o seguinte conteúdo:

#!/bin/sh
ethtool -s eth0 wol g

Não esquecer de tornar o script executável com:

chmod +x /etc/network/if-up.d/wolenable

Para que o script seja executado é preciso adicionar uma linha à configuração da interface de rede em /etc/network/interfaces:

auto eth0
iface eth0 inet dhcp
    post-up /etc/network/if-up.d/wolenable

Isto vai executar o script cada vez que a interface eth0 seja iniciada (a linha nova está a negrito).
Depois é só uma questão de a partir de outra máquina (no mesmo domínio de broadcast) executar:

wakeonlan 01:23:45:67:89:ab

Substituindo o 01:23:45:67:89:ab pelo MAC address da máquina, claro.

Sem comentários:

Enviar um comentário