Как я получаю шлюз по умолчанию в LINUX, учитывая место назначения?

Ее твердое для предоставления категорического ответа, не зная, какой сайт Вы продолжаете работать и какую загрузку Вы ожидаете. Sub вторая производительность может быть серьезным требованием или она не может. Если действительно необходимо сохранить ту последнюю миллисекунду тогда, абсолютно необходимо сохранить массивы в памяти. Однако, поскольку другие предположили, что более, чем вероятно, что Вы не делаете и могли обойтись чем-то еще. Ваш шаблон использования данных в массиве может влиять на то, какие виды выбора Вы делаете. Вам, вероятно, не нужен доступ ко всему набору данных из массива внезапно, таким образом, Вы могли разбить свои данные в меньшие блоки и поместить те блоки в кэш вместо одной большой глыбы. В зависимости от того, как часто должны быть обновлены Ваши данные массива, Вы могли бы сделать выбор между memcached, локальный дб (berkley, sqlite, маленькая mysql установка, и т.д.) или удаленный дб. Я сказал бы memcached для довольно частых обновлений. Локальный дб для чего-то в частоте почасовых и удаленных для частоты ежедневной газеты. Одна вещь рассмотреть также - то, что происходит после неудачного обращения в кэш. Если 50 клиентов внезапно получают неудачное обращение в кэш, и все они одновременно решают начать повторно создавать те дорогие массивы, Ваше поле (поля) будет быстро уменьшено до 8086. Таким образом, необходимо принять к соображению, как Вы обработаете это. Много статей там касаются, как восстановиться с неудачных обращений в кэш. Надежда это полезно.

34
задан Zsolt Botykai 31 January 2012 в 20:22
поделиться

3 ответа

Вы можете получить шлюз по умолчанию, используя команду ip следующим образом:

IP=$(/sbin/ip route | awk '/default/ { print $3 }')
echo $IP
54
ответ дан 27 November 2019 в 16:04
поделиться

Этот простой сценарий Perl сделает это за вас.

#!/usr/bin/perl

$ns = `netstat -nr`;

$ns =~ m/0.0.0.0\s+([0-9]+.[0-9]+.[0-9]+.[0-9]+)/g;

print $1

Обычно мы запускаем netstat, сохраняем его в $ ns. Затем найдите строку, которая начинается с 0.0.0.0. Затем круглые скобки в регулярном выражении сохраняют все внутри него в $ 1. После этого просто распечатайте его.

Если он назывался null-gw.pl, просто запустите его с помощью такой команды, как:

perl null-gw.pl

или, если он вам нужен внутри выражения bash:

echo $(perl null-gw.pl)

Удачи.

4
ответ дан 27 November 2019 в 16:04
поделиться

Если вы знаете, что 0.0.0.0 - ваш ожидаемый результат и будет в начале строки, вы можете использовать в своем скрипте следующее:

IP=`netstat -rn | grep -e '^0\.0\.0\.0' | cut -d' ' -f2`

затем ссылайтесь на переменную $ {IP} .

Здесь лучше использовать awk вместо cut ... например:

IP=`netstat -rn | grep -e '^0\.0\.0\.0' | awk '{print $2}'`
0
ответ дан 27 November 2019 в 16:04
поделиться
Другие вопросы по тегам:

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