Ist es möglich, das Wake-on-Lan-Magic-Paket in Bash zu implementieren? Ich verwende eine alte, angepasste BusyBox und habe keine ether-wake
. Ist es möglich, es durch einen anderen Shell-Befehl zu ersetzen, wie zum Beispiel:
wakeonlan 11:22:33:44:55:66
busybox
wake-on-lan
michelemarcon
quelle
quelle
python
Sie code.activestate.com/recipes/358449-wake-on-lan und setzen Siealias
dies in Ihre.bashrc
Antworten:
Sie benötigen etwas, das ein Ethernet-Paket senden kann, das von dem Gerät gesehen wird, das Sie aktivieren möchten.
Der
ether-wake
Befehl in BusyBox ist genau das, wonach Sie suchen. Wenn Ihre BusyBox nicht über diese verfügt, sollten Sie BusyBox neu kompilieren, um sie einzuschließen.Wenn Sie über einen ausreichend "aufgeblähten" Netcat verfügen (BusyBox kann eine von zwei
nc
Implementierungen haben, von denen eine nur TCP verarbeitet), können Sie ein manuell erstelltes UDP-Paket an die Broadcast-Adresse des Netzwerksegments senden, mit dem das Gerät verbunden ist.Ein weiteres BusyBox-Dienstprogramm, das Sie beim Senden dieses Pakets missbrauchen könnten, ist
syslogd
.Wenn der MAC ein Null-Byte enthält, können Sie das Paket nicht so einfach erstellen. Wählen Sie ein Byte aus, das nicht
\xff
im MAC enthalten ist, z. B.\x42
(B
), und leiten Sie es durchtr
.Wenn Sie wirklich Bash haben (was auf Geräten mit BusyBox äußerst ungewöhnlich ist - sind Sie sicher, dass Sie wirklich Bash haben und keine andere von BusyBox bereitgestellte Shell?), Kann es UDP-Pakete durch Umleiten an senden
/dev/udp/$hostname/$port
.quelle
/dev/udp
wird von bash erkannt und ist im Dateisystem nicht wirklich vorhanden. Probieren Sie es aus.Ich denke, Sie können
syslogd
ohne-l
Schalter verwenden, solange es unterstützt-R
.Ich habe geschäftige Box mit
syslogd
Withount-R
, neinnc
nochbash
und ich stecke immer noch fest.quelle
Ich habe einen SSH-Server, der auf einem alten HTC-Traum läuft. Meine Version von Busybox enthielt auch kein Ether-Wake und ich bin nicht geschickt genug, um meine eigene Busybox zu kompilieren. Zum Glück konnte ich meinen PC mit folgenden Funktionen aktivieren:
Beachten Sie, dass die Broadcast-IP in meinem Netzwerk unterschiedlich ist.
Ich habe die Datei (mac2.txt) mit dem magischen Paket auf meinem PC erstellt und per SFTP auf den Server übertragen. Da mein Mac ein Null-Byte hat, muss ich tr verwenden, um alle x42-Bytes durch 00 zu ersetzen. Es hat wie ein Zauber funktioniert.
quelle