dnsmasq никакой доступный адрес?

Когда Вы работаете:

ping -q -c 1 google.com > /dev/null && echo online || echo offline

Вы чрезвычайно только перенаправляете вывод Потока 1 (т.е. stdout) к /dev/null.

Это прекрасно, когда Вы хотите перенаправить вывод, который производится нормальным осуществлением программы. Однако в случае, если Вы также хотите перенаправить вывод, вызванный всеми ошибками, предупреждениями или отказами, необходимо также перенаправить stderr или поток Стандартной погрешности к /dev/null.

Один способ сделать это предварительно ожидает количество потока, который Вы хотите перенаправить к оператору перенаправления, > как это: Command 2> /dev/null

Следовательно, Ваша команда была бы похожа:

ping -q -c 1 google.com > /dev/null 2> /dev/null && echo online || echo offline

Но, заметьте, что мы уже перенаправили один поток к /dev/null. Почему не просто автожелезнодорожные перевозки на том же перенаправлении? Bash позволяет нам делать это путем определения потокового числа, к которому можно перенаправить к. 2>&1.

Заметьте & символ после оператора перенаправления. Это говорит оболочку, которая, что появляется затем, не имя файла, а идентификатор для потока вывода.

ping -q -c 1 google.com > /dev/null 2>&1  echo online || echo offline

Будьте осторожны с операторами перенаправления, их порядок имеет большое значение. Если необходимо было перенаправить в неправильном порядке, Вы закончите с неожиданными результатами.

Иначе, в котором можно достигнуть полной тишины, путем перенаправления всех потоков вывода к /dev/null использование этого ярлыка: &>/dev/null (или перенаправление к файлу журнала с &>/path/to/file.log).

Следовательно, запишите свою команду как:

ping -q -c 1 google.com &> /dev/null && echo online || echo offline
2
21.08.2014, 21:10
1 ответ

Вы можете расширить свой диапазон, отредактировав конфигурационный файл:

vi /etc/dnsmasq.conf

Ищите строку dhcp-диапазона :

dhcp-range=192.168.0.10,192.168.0.50,12h

выдаст от 192.168.0.10 до 192.168.0.50 со сроком аренды 12 часов.

Вы можете посмотреть ваши текущие лизинги с:

cat /var/lib/dnsmasq/dnsmasq.leases

Этот путь может отличаться, в зависимости от вашего дистрибутива. Если его нет, проверьте вышеприведённый конфигурационный файл на:

dhcp-leasefile=<path to lease file>

Вот минимальный пример конфигурационного файла:

interface=eth0
dhcp-range=192.168.0.10,192.168.0.50,12h
dhcp-options=3,192.168.0.1

который прослушивает eth0 и выдаёт 192.168.0.10 на 192.168.0.50 со временем аренды 12 часов. Он также отправляет шлюз по умолчанию (3) в виде 192.168.0.1.

4
27.01.2020, 22:00

Теги

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