lts является там способом включить режим ожидания и след на LAN?

sz и vsz представьте то же самое, но sz находится в единицах страницы, в то время как vsz находится в 1 024-байтовых единицах.

Для получения размера страницы системы можно использовать:

$ getconf PAGE_SIZE
4096

rss подмножество памяти процесса, которая в настоящее время загружается в RAM (в килобайтах). Это обязательно меньше, чем vsz.

Таким образом, "математические" соединения:

vsz * 1024 = sz * page_size
rss <= vsz
3
22.09.2014, 20:43
2 ответа

След на LAN является функцией BIOS и NIC, не функцией OS, то есть, Вам нужна поддержка BIOS и NIC, чтобы сделать это.

После того как Вы включили его в своем BIOS (если Вы можете), можно проверить, имеет ли NIC поддержку WOL, включенную путем проверки вывода ethtool [interface].

Если значение Supports Wake-on содержит g, Ваш NIC поддерживает волшебные пакеты WOL.

Чтобы проверить, включено ли это на самом деле, смотрите на значение Wake-on. Если это содержит g, Вашему NIC включили волшебную пакетную поддержку.

Если это не включено, выполните следующее:

ethtool -s [interface] wol g

Необходимо будет дать эту команду каждый раз, когда система запускается, поэтому добавьте его к соответствующему месту. В Ubuntu возможно, лучшее место было бы как up правило в /etc/network/interfaces, или эквивалент для Вашего администратора сети.

5
27.01.2020, 21:17
  • 1
    благодарит за ответ! но к "каждому разу запускается Ваша система", Вы имеете в виду след, перезагрузку или обоих? –  Craig Smith 19.11.2012, 22:10
  • 2
    @CraigSmith, Который зависел бы от Вашего NIC, но вероятно только на начальной загрузке. –  Chris Down 19.11.2012, 22:17

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

Вторым, который я увидел в интернете, были линуксовые вопросы . При этом используется пинг на другой машине.

Я также прошил маршрутизатор с DD-WRT, чтобы попробовать - на dd-wrt wiki . Это очень хорошее элегантное решение, но проблема в том, что они не подходят для внутреннего медиа-сервера, так как журнал ловит только принятые пакеты из-за пределов сети. Если вам нужен только внутренний медиа-сервер, это просто не работает.

Для dd-wrt это предлагает действительно хорошее решение с использованием VLAN. В основном, поместите сервер в его собственную внутреннюю подсеть и отслеживайте трафик в эту VLAN, тогда предыдущий скрипт работает. Это хорошо работает, но по моему опыту роутер и сборка dd-wrt всякий раз, когда я использовал функцию vlan DHCP, разбивались.

Я решил, что мне нужно решение для автоматического пробуждения и приостановки моего медиа-сервера при обращении к нему, которое не зависело бы от dd-wrt. У меня есть малиновый пи, поэтому я использовал его. Окончательным решением, которое я нашел для себя, было написание небольшого бэш-скрипта. Зависимости малинового пи - это etherwake и tcpdump. Обе не установлены по умолчанию на малине.

sudo apt-get install etherwake
sudo apt-get install tcpdump

Сценарий wake выглядит следующим образом:

#!/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

Основная идея заключается в том, что он выполняется из моей малины-pi, которая разбудит сервер, если заметит единственный arp-запрос для сервера. Если сервер проснулся, то он не будет прослушивать arp запрос, а будет посылать несколько пингов время от времени, чтобы убедиться, что он все еще не спит.

Я назвал файл wol.sh и сделал его исполняемым. Затем поместите его в sudo crontab, чтобы запустить @reboot от имени root. Это для tcpdump, который нуждается в повышенном доступе для прослушивания eth0 и etherwake.

sudo chmod +x /home/pi/wol.sh
sudo crontab -e

Добавьте это в нижнюю часть

@reboot sh /home/pi/wol.sh > /dev/null

Сценарий сна выполняется с медиа-сервера по тому же принципу. Если во время сканирования отсутствует трафик к серверу (исключая icmp или arp), я выбрал 1 минуту. Затем он добавляет к счетчику, который я назвал "сонливость". После того, как сонливость достигнет 10 или 20, что означает, что у него не было трафика в течение 20 минут, затем он устанавливает сонливость на ноль, после чего он выдает команду pm-suspend , чтобы заснуть. Он пакеты получены и сонливость!=0 , то он делает сонливость -1. Таким образом, если он захватывает бродячий пакет или как вы делаете это от маршрутизатора, он не будет сбрасывать счет обратно на ноль, а просто сделать -1 от счетчика. Я поместил это туда, потому что это позволяет льготный период мягкого засыпания по мере уменьшения пакетов в течение некоторого времени, вместо того, чтобы иметь абсолютно нулевые пакеты в течение 20 последовательных минут.

Возможно, это не лучший вариант, потому что он должен вызывать tcpdump на обеих машинах, Involves constant записывает на диск (сторона сервера). Для записи на диск я смонтировал жертвенный USB и именно там сохраняется мой файл захвата, чтобы предотвратить износ моего фактического жесткого диска.

0
27.01.2020, 21:17

Теги

Похожие вопросы