Ее твердое для предоставления категорического ответа, не зная, какой сайт Вы продолжаете работать и какую загрузку Вы ожидаете. Sub вторая производительность может быть серьезным требованием или она не может. Если действительно необходимо сохранить ту последнюю миллисекунду тогда, абсолютно необходимо сохранить массивы в памяти. Однако, поскольку другие предположили, что более, чем вероятно, что Вы не делаете и могли обойтись чем-то еще. Ваш шаблон использования данных в массиве может влиять на то, какие виды выбора Вы делаете. Вам, вероятно, не нужен доступ ко всему набору данных из массива внезапно, таким образом, Вы могли разбить свои данные в меньшие блоки и поместить те блоки в кэш вместо одной большой глыбы. В зависимости от того, как часто должны быть обновлены Ваши данные массива, Вы могли бы сделать выбор между memcached, локальный дб (berkley, sqlite, маленькая mysql установка, и т.д.) или удаленный дб. Я сказал бы memcached для довольно частых обновлений. Локальный дб для чего-то в частоте почасовых и удаленных для частоты ежедневной газеты. Одна вещь рассмотреть также - то, что происходит после неудачного обращения в кэш. Если 50 клиентов внезапно получают неудачное обращение в кэш, и все они одновременно решают начать повторно создавать те дорогие массивы, Ваше поле (поля) будет быстро уменьшено до 8086. Таким образом, необходимо принять к соображению, как Вы обработаете это. Много статей там касаются, как восстановиться с неудачных обращений в кэш. Надежда это полезно.
Вы можете получить шлюз по умолчанию, используя команду ip
следующим образом:
IP=$(/sbin/ip route | awk '/default/ { print $3 }')
echo $IP
Этот простой сценарий 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)
Удачи.
Если вы знаете, что 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}'`