Я использую брандмауэр csf для своего сервера ... поэтому мне нужно запустить csf -g 10.10.10.10, чтобы проверить, разрешен ли ip или нет ... Я использую скрипт bash для запуска команды ... но csf -g 10.10.10.10
вернуть 0 , если совпадения найдены или не найдены ... поэтому мне нужно проверить результат команды, если они содержат DENYIN для найдено и " совпадений не найдено "для false .
Я использовал grep , но точно не знаю, как его использовать ... что-то вроде этого:
csf -g 10.10.10.10 && echo === $? === || echo $? | grep "No matches found"
пожалуйста, дайте мне знать об этом. если у вас есть лучшее решение, пожалуйста, дайте мне знать
выполненная команда return:
csf -g 10.10.10.10
Table Chain num pkts bytes target prot opt in out source destination
No matches found for 10.10.10.10 in iptables
ip6tables:
Table Chain num pkts bytes target prot opt in out source destination
No matches found for 10.10.10.10 in ip6tables
10.10.10.10 и 20.20.20.20, например, не в реальном мире
csf -g 20.20.20.20
Table Chain num pkts bytes target prot opt in out source destination
filter DENYIN 181 6586 395K DROP all -- !lo *
20.20.20.20 0.0.0.0/0
filter DENYOUT 181 0 0 LOGDROPOUT all -- * !lo 0.0.0.0/0 20.20.20.20
ip6tables:
Table Chain num pkts bytes target prot opt in out source destination No matches found for
20.20.20.20 in ip6tables
csf.deny: 20.20.20.20 # lfd: (smtpauth) Failed SMTP AUTH login from
20.20.20.20 -------: 5 in the last 3600 secs - Thu Oct 24 20:33:07 2019