Иногда возникает необходимость дистанционно включать компьютер, в моем случае, это сервер для бэкапов, в нем много дисков и они шумят, но круглыми сутками он не нужен, только по расписанию
Настройка 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
которая отправляет сигнал включения на комп и ждет пока он включится, далее пишет что комп готов и я могу подключиться к компу.