Сперва надо установить wakeonlan на своём Debian:
sudo apt-get install wakeonlan
Manjaro — через Pamac.
В их AUR есть wakeonlan, а ещё есть gwakeonlan — GTK и Python.
Обращение к удалённому устройству делается по его MAC-адресу.
Узнать текущий mac address:
sudo ip a
Посмотреть зачение для link/ether, например „b4:99:ba:bf:48:44“.
Скрипт
#!/bin/bash # Wake up NAS через роутер, # ждём 81 sec (1 мин 20 сек)пока он проснётся, # открываем firefox с OMV. # Почему 81 — на самом деле нужно 80, но когда скрипт начинает работать, глаз замечает старт отсчёта обратного времени с 79-й секунды и мозг удивляется.
firefox="/opt/firefox/firefox -p astenix"
device="B4:99:BA:BF:48:44"
nas_ip="192.168.10.20"
nas_url="http://tower.local:81/"
# Функция отсчёта времени
function countdown(){
for (( i=81; i>0; i--)); do
printf "\rОсталось $i секунд. Можно нажать AnyKey чтобы запинговать NAS немедленно."
read -s -n 1 -t 1 key
if [ $? -eq 0 ]
then
break
fi
done
}
# echo "Отослан сигнал пробуждения."
wakeonlan $device
# запустить обратный отсчет
countdown
# дежурное сообщение
echo "\nНачинается пингование в цикле. После успешного ответа откроется firefox."
# пингуем
# „grep from -m 1“ фильтрует вывод команды ping в поисках строки, которая содержит слово „from“.
# Опция „-m 1” говорит grep, что надо остановиться после нахождения первой строки, в которой есть слово „from”.
# Сразу после этого выполняется следующая строка, которая запускает Firefox
ping $nas_ip | grep from -m 1
# когда пинг вернулся — открываем браузер $firefox $nas_url