WakeOnLan Linux

Иногда возникает необходимость дистанционно включать компьютер, в моем случае, это сервер для бэкапов, в нем много дисков и они шумят, но круглыми сутками он не нужен, только по расписанию

Настройка WakeOnLan в BIOS

Первым делом, нужно включить поддержку WOL в биосе, иногда эта настройка находится в настройках питания и так и называется, но вот на материнских платах ASUS нужно зайти в пункт APM Configuration и там включить Power In by PCI-E

Включение поддержки WOL на Debian

Открываем /etc/network/interfaces и прописываем там опцию ethernet-wol g

# The primary network interface
allow-hotplug enp3s0
iface enp3s0 inet static
        address 192.168.0.8/24
        gateway 192.168.0.1
        dns-nameservers 192.168.0.1
        ethernet-wol g

Далее перезагружаем и выключаем сервер

reboot
...
shutdown -h now

А с другого компа выполняем команду wakeonlan с указанием mac-адреса

 wakeonlan 05:43:1b:98:4b:60

Особенности работы WOL

Функция wakeonlan может не работать если вы выключите из розетки и снова включите компьютер, т.е. он должен быть предварительно выключен из операционной системы в определенный режим ожидания. Поэтому, лучшим решением будет настройка включения после потери питания.

Если электроэнергия мигнет, то сервер включится, выключить его можно по ssh, а включить по wakeonlan.

Bash скрипт для включения и ожидания

Удобно не запоминать mac-адреса включаемых машин и не запускать руками пинг в ожидании готовности.

#!/bin/bash
case $1 in

bigbro)
targ_mac="04:42:1a:97:4b:66";
targ_ip="192.168.0.33"
;;

synology)
targ_mac="05:44:1b:93:4b:65";
targ_ip="192.168.0.66"
;;

*)
cat << EOF
Fignya params!!!
Use: wol bigbro | wol synology

EOF

exit;
;;

esac


wait_ip(){
i=0;
while [ $i -lt 40 ];
do
i=$((i+1))
ping -q -c1 ${targ_ip} &>/dev/null && echo "host is enabled!!!" && break || echo host ${targ_ip} is disabled, waiting ${i}/40...
sleep 3
echo "wait enable host"
done
}


wakeonlan ${targ_mac} && wait_ip

Данный скрипт накатан на коленке, поэтому не особо хорош, но свои задачи выполняет, в моей сети постоянно работает только экономичный мини-пк потребляющий около 5 ватт, я подключаюсь к нему и с него стартую команду типа wol bigbro которая отправляет сигнал включения на комп и ждет пока он включится, далее пишет что комп готов и я могу подключиться к компу.

Показать комментарии