Зачем?
- Экономия электричества
- Экономия ресурса HDD/SSD
- Не нужно мониторить, что все еще ничего не сломалось
- Тишина, если машина оснащена вентилятором и/или HDD
Как выключать?
Выполняем команду и будет выключаться в полночь:
echo "10 0 * * * root /sbin/poweroff" > /etc/cron.d/poweroff
Для отключения удаляем файл /etc/cron.d/poweroff
.
В TrueNAS SCALE немного по другому: заходим в System Settings -> Advanced -> Cron Jobs -> Add (run as root
, остальные настройки очевидны).
Как включать?
Самый удобный способ – послать “магический” пакет на сетевой интерфейс (по MAC-адресу, т.к. IP-адрес в это время еще недоступен). Для этого обе машины должны быть в одном сегменте сети.
Настройка клиента
Как поставить утилу на macOS (на остальные системы примерно так же):
brew install wakeonlan
Как запустить (7c:83:00:11:22:33
– MAC-адрес машины, которую нужно включить):
wakeonlan 7c:83:00:11:22:33
Для удобства сделал alias:
alias on_nas="wakeonlan 7c:83:00:11:22:33"
Настройка выключаемой машины
Проверьте есть ли в BIOS соответствующая настойка. Если есть, то включите.
Проверьте под root отработает ли команда без ошибок:
/sbin/ethtool -s eth0 wol g
netlink error: cannot enable unsupported WoL mode (offset 36)
netlink error: Invalid argument
– это как раз пример ошибки (Raspberry Pi 4 не поддерживает такое включение – для него только через умную розетку)
Если операционная система настраивается через Network Manager (Ubuntu и Rocky), то можно использовать следующие команды:
# получить список соединений, чтобы узнать точное имя
nmcli connection
# настроить включение WoL:
nmcli connection modify "Wired connection 2" 802-3-ethernet.wake-on-lan magic
Для TrueNAS SCALE:
- Имя сетевого устройства можно посмотреть в разделе Network -> Interfaces.
- Заходим в System Settings -> Advanced -> Init/Shutdown Scripts -> Add. Добавляем
Post Init
команду:
/sbin/ethtool -s enp2s0 wol g
Про выключение вышла новая статья (там еще несколько способов выключения): Удаленное выключение домашнего сервера.