É possível implementar o pacote mágico wake-on-lan no bash? Estou usando um BusyBox antigo personalizado e não tenho ether-wake
. É possível substituí-lo por algum outro comando do shell, como:
wakeonlan 11:22:33:44:55:66
busybox
wake-on-lan
michelemarcon
fonte
fonte
python
consulte code.activestate.com/recipes/358449-wake-on-lan e coloquealias
isso no seu.bashrc
Respostas:
Você precisa de algo capaz de enviar um pacote Ethernet que será visto pelo dispositivo que você deseja ativar.
O
ether-wake
comando no BusyBox é exatamente o que você procura. Se o seu BusyBox não o possuir, considere recompilar o BusyBox para incluí-lo.Se você tiver um netcat suficientemente “inchado” (o BusyBox pode ter uma das duas
nc
implementações, uma das quais lida apenas com TCP), você pode enviar um pacote UDP criado manualmente para o endereço de broadcast do segmento de rede ao qual o dispositivo está conectado.Outro utilitário BusyBox que você pode abusar ao enviar esse pacote é
syslogd
.Se o MAC contiver um byte nulo, você não poderá criar o pacote tão facilmente. Escolha um byte que não esteja
\xff
e que não esteja no MAC, digamos\x42
(B
), e passe através deletr
.Se você realmente possui o bash (o que é extremamente incomum em dispositivos com o BusyBox - você tem certeza de que realmente possui o bash, e não outro shell fornecido pelo BusyBox?), Ele pode enviar pacotes UDP redirecionando para
/dev/udp/$hostname/$port
.fonte
/dev/udp
é reconhecido pelo bash e realmente não existe no sistema de arquivos, então tente.Eu acho que você pode usar
syslogd
sem-l
switch, desde que ele suporte-R
.Tenho busybox com
syslogd
withount-R
, não,nc
nembash
e ainda estou preso.fonte
Eu tenho um servidor ssh rodando no antigo sonho HTC. Minha versão do busybox também não incluía o despertar etéreo e não tenho habilidade suficiente para compilar meu próprio busybox. Felizmente, consegui ativar meu PC usando:
Observe que o IP de transmissão é diferente na minha rede.
Criei o arquivo (mac2.txt) que contém o pacote mágico no meu PC e o enviei ao servidor via SFTP. Como meu mac possui byte nulo, tenho que usar tr para substituir todos os bytes x42 por 00. Funcionou como um encanto.
fonte