Saya memutuskan ingin solusi untuk membangunkan server media saya secara otomatis ketika diakses yang tidak bergantung pada dd-wrt.
Saya punya pi raspberry, jadi saya menggunakannya karena dayanya rendah dan saya tidak keberatan menyimpannya setiap saat, tentu saja bisa dijalankan dari mesin linux mana pun.
Solusi terakhir yang saya temukan untuk diri saya adalah menulis skrip bash kecil. Ketergantungan raspberry-pi adalah etherwake dan tcpdump. Keduanya tidak diinstal secara default pada rasbian. Juga di server Wake On Lan perlu diaktifkan seperti yang disebutkan dalam posting lain.
sudo apt-get install etherwake
sudo apt-get install tcpdump
Script bangun adalah sebagai berikut:
nano ~/wol.sh
Kemudian:
#!/bin/bash
pingInterval=60 #time interval, in seconds, between checks that the server is still awake.
target=192.168.x.x #WOL target ip address
targetMAC=00:11:22:33:44:55 #WOL target MAC
wake () {
tcpdump -i eth0 -c 1 -p host $target
etherwake $targetMAC
#echo WOL sent to $target at $targetMAC
return
}
while sleep $pingInterval; do
varPing=`ping -s 1 -c 2 $target > /dev/null; echo $?`
if [ $varPing -eq 0 ]; then
#echo ping success
else
#echo ping fail
wake
fi
done
Ide utamanya adalah dijalankan dari raspberry-pi saya yang akan membangunkan server jika pemberitahuan permintaan arp tunggal untuk server. Jika server terjaga maka ia tidak akan mendengarkan permintaan arp tetapi mengirim beberapa ping setiap sekarang dan kemudian untuk memastikan itu masih terjaga.
Saya memberi nama file wol.sh dan membuatnya dapat dieksekusi. Kemudian letakkan di sudo crontab untuk meluncurkan @reboot sebagai root. Ini untuk tcpdump yang membutuhkan akses tinggi untuk mendengarkan eth0 dan etherwake.
sudo chmod +x /home/pi/wol.sh
sudo crontab -e
tambahkan ini ke bawah
@reboot sh /home/pi/wol.sh > /dev/null