Как включать все файлы из каталога в сценарии оболочки (/etc/init.d/iptables в этом случае)

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


То, когда я тестирую сетевую пропускную способность, лучше удалять как можно больше переменных, таких как диск i/o или ограничения ЦП. Вот процедура, которую я использую, который может проиллюстрировать типичное макс., которое Вы будете когда-либо видеть в своей сети.

Инструменты:

Обе этих утилиты должны быть доступными на самом современном *, отклоняют системы, или предварительно установленные, через пакеты, или способный быть скомпилированным из источника.

Процедура:

  1. Выполните следующую команду на одном компьютере для установки слушателя UDP. (Используя UDP даст более высокие показатели производительности из-за отсутствия TCP наверху для передачи.)

    nc -ulp 5000 > /dev/null

  2. На другой машине, выполненной следующая команда, заменяя IP-адресом слушателя, для отправки потока нулей по сети nc слушателю. Утилита объема плазмы покажет текущую производительность, как прослежено получателем.

    pv < /dev/zero | nc -u listener-ip-address 5000

Примечания:

  • Теоретическим макс. на соединении Ethernet Концерта является 119MB/s (уведомление, МБ, не Мбит)
  • TCP может также быть протестирован путем удаления-u в обоих команды nc
  • В приложениях реального мира Вы никогда не будете достигать показателей производительности, проиллюстрированных в выводе объема плазмы.

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

6
задан 16 July 2009 в 13:26
6 ответов

Добавьте следующую строку к своему init.d сценарию.

run-parts --report /etc/iptables/include.d

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

Если Вы, Вы только хотите выполнить файлы, который заканчивается .port, как который Вы могли использовать что-то:

run-parts --regex '\.port$' /etc/iptables/include.d/

Если Вы хотите удостовериться, что порядок является правильным, можно назвать файлы:

10_web.port
20_ssh.port
etc..
11
ответ дан 3 December 2019 в 00:02
for f in /etc/iptables/include.d/*
 . $f
done

отметьте пространство между точкой и %f

Saurabh является правильным - это не будет необходимая работа, как Вы предназначаете, но используете некоторое соглашение о присвоении имен, например, 10-xxx, 20-yyy и так далее, и это могло бы быть управляемо.

3
ответ дан 3 December 2019 в 00:02
  • 1
    я думаю здорово, потому что я не полагаюсь на внешнюю команду (части выполнения) –  user12096 16 July 2009 в 23:39
  • 2
    будет порядок файлов при 10-xxx нумерации, 20-yyy уважаться автоматически for f in? –  user12096 18 July 2009 в 13:49
  • 3
    @matnagel - должен быть. если Вы имеете какие-либо сомнения, заменяете/etc/iptables/include.d /* с ls -1 /etc/iptables/include.d/*.extension - с ls можно управлять критериями сортировки, принять значение по умолчанию, каждый по имени. заметьте специальный символ кавычки. –  pQd 18 July 2009 в 14:48

Можно определить простую функцию в ударе:

function include() {
    for FILE in $( find "$1" -type f -print | sort )
    do
        source $FILE
    done
}

и затем:

include some_dir/*

или даже:

include some_dir/*.conf
2
ответ дан 3 December 2019 в 00:02

Можно также рассмотреть создание iptables сценария из шаблонных файлов, один из которых был бы исходным iptables сценарием. создайте сценарий, который считает Ваши шаблонные файлы в соответствующих каталогах и создаст новый iptables сценарий от них. Тот путь, когда необходимо внести изменения, Вы делаете так в шаблонах и просто повторно выполняете свой генератор сценария.

Используя этот метод Вы могли даже стать необычными и поместить маркеры в основной шаблон, который может использоваться для передачи сигналов, когда включать файлы из определенных каталогов в шаблонном дереве.

2
ответ дан 3 December 2019 в 00:02

Я не думаю, что можно включать файлы в iptables конфигурацию. Выбор имеет смысл, поскольку правила брандмауэра во многом зависят от порядка, в котором они записаны. Если мы просто включаем файлы в папку, iptables привычка знают который правила поместить сначала и который позже.

0
ответ дан 3 December 2019 в 00:02
  • 1
    это - положительная сторона. спасибо за указание на это. я обновляю вопрос использовать несколько include.d каталогов, таким образом, я могу дать им распоряжение. У меня есть многие сервисы, которые не зависят друг от друга, и установка все еще имела бы смысл в этих случаях. –  user12096 16 July 2009 в 13:21

Чтобы правильно вести себя с пустым каталогом include.d / , вы можете сделать:

for f in /etc/iptables/include.d/*; do
  [[ -e "${f}" ]] && . "${f}"
done
0
ответ дан 3 December 2019 в 00:02

Теги

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