¿Es posible implementar el paquete mágico wake-on-lan en bash? Estoy usando un BusyBox viejo y personalizado y no tengo ether-wake. ¿Es posible reemplazarlo con algún otro comando de shell, como:
wakeonlan 11:22:33:44:55:66
busybox
wake-on-lan
michelemarcon
fuente
fuente

pythonver code.activestate.com/recipes/358449-wake-on-lan y poneraliasesto en su.bashrcRespuestas:
Necesita algo que sea capaz de enviar un paquete Ethernet que será visto por el dispositivo que desea activar.
El
ether-wakecomando en BusyBox es exactamente lo que buscas. Si su BusyBox no lo tiene, considere volver a compilar BusyBox para incluirlo.Si tiene un netcat suficientemente "hinchado" (BusyBox puede tener una de dos
ncimplementaciones, una de las cuales maneja solo TCP), puede enviar un paquete UDP diseñado manualmente a la dirección de transmisión del segmento de red al que está conectado el dispositivo.Otra utilidad de BusyBox que podría abusar para enviar ese paquete es
syslogd.Si el MAC contiene un byte nulo, no podrá crear el paquete tan fácilmente. Elija un byte que no esté
\xffy que no esté en el MAC, digamos\x42(B), y canalicetr.Si realmente tiene bash (lo cual es extremadamente inusual en dispositivos con BusyBox, ¿está seguro de que realmente tiene bash y no otro shell proporcionado por BusyBox?), Puede enviar paquetes UDP al redirigirlos
/dev/udp/$hostname/$port.fuente
/dev/udpes reconocido por bash y realmente no existe en el sistema de archivos, así que pruébalo.Creo que puede usar
syslogdsin-linterruptor, siempre que sea compatible-R.Tengo busybox con
syslogdwithount-R, noncnibashy todavía estoy atascado.fuente
Tengo un servidor ssh ejecutándose en el viejo sueño de HTC. Mi versión de busybox tampoco incluía ether-wake y no tengo la habilidad suficiente para compilar mi propia busybox. Afortunadamente logré despertar mi PC usando:
Tenga en cuenta que la transmisión IP es diferente en mi red.
Creé el archivo (mac2.txt) que contenía el paquete mágico en mi PC y lo envié al servidor a través de SFTP. Debido a que mi mac tiene un byte nulo, tengo que usar tr para sustituir todos los x42 bytes con 00. Funcionó de maravilla.
fuente