Как игнорировать прерывания с помощью командных команд

И здесь я должен признаться в очень слепой оплошности и ответить на свой вопрос (по крайней мере, в той части, которая меня сбила с толку!)

Я есть сценарий, который запускает и останавливает мои настройки маршрутизатора Linux (установка правил брандмауэра, включение IP-пересылки, маскарадинга и т. д.) и выполняет «обратное» при остановке ] команда. Одна из строк в разделах stop была:

iptables -P FORWARD DROP

Это устанавливает для политики FORWARD значение DROP - эффективно прекращая пересылку пакетов, и, следовательно, было причиной все мои проблемы! В конце концов, это было так же просто, как добавить маршрут

ip route add 192.168.2.0/24 via 192.168.1.2

в таблицу маршрутизации на маршрутизаторе Linux. Пакеты из разных подсетей правильно пересылаются на 192.168.1.1 , откуда при необходимости пересылаются дальше через GW 192.168.1.25 для подсети 192.168.2.0/24

Спасибо wurtel и user2999479 , чьи ответы заставили меня углубиться в мои собственные настройки :)

3
12.09.2018, 02:23
1 ответ

ping -D localhost 2>&1 | (trap '' INT; exec sed -u 's/^\[\([0-9]*\.[0-9]*\)\]\(.*$\)/echo "[`date -d @\1 +"%Y-%m-%d %H:%M:%S"`] \2"/e') | tee -a -i ping.log

Вызов trap '' INTуказывает оболочке игнорировать SIGINT. execявляется необязательным, но его желательно иметь, так как процесс подоболочки больше не нужен после ловушки.

4
27.01.2020, 21:21

Теги

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