Фильтр для ответа удаленного сервера из netcat SMTP scan

Я использую netcat для проверки того, находится ли удаленный сервер exchange (назовем его exchange1) в сети с помощью этого кода.

nc -w 3 192.168.130.17 25

Я хочу создать файл с именем этого сервера, если и только если сканирование netcat получит ответ '220 SMTP Server Ready', что означает, что exchange1 находится в сети. Если ответа нет, я не хочу записывать имя в файл, потому что он не в сети.

  1. Как это называется. Я полагаю, что это тип фильтрации результатов команд, но не могу найти статьи о том, как это делается.
  2. Может ли кто-нибудь привести простой пример этого, чтобы я мог на нем учиться.
0
13.04.2016, 19:32
1 ответ

Вы можете использовать grep для проверки соответствия вывода некоторой команды шаблону, передавая вывод другой команды в grep. Вы используете grep внутри блока if.

Очевидный глупый пример (и весь мир называет его "пятницей", верно?):

if date +%A | grep -q 'Friday'; then   # -q tells grep not to echo the matched text
    throw_a_party
else
    echo "Nope, sorry, not time yet."
fi

Соответствующие разделы руководства Bash включают "Конвейеры" и "Составные команды".

0
28.01.2020, 04:51

Теги

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