Я хотел бы проверить соединения портов nc
и переслать результат в текстовый файл.
stdout
работает нормально. stderr
пусто, если вы не используете -v
(что мне не нужно), поэтому я хотел бы настроить вывод ошибок следующим образомServername: no connection
nc
это версия v1.10-41+b1.
Вот команда
nc -z -G 5 $Servername $Portname >> telnet_log.txt 2>&1
решение1
nc
на macOS завершается с ненулевым статусом выхода, если не удается подключиться к хосту. Вы можете использовать этот факт в -операторе if
для вывода собственного сообщения об ошибке:
if ! nc -z -G 5 "$server" "$port"; then
printf '%s: no connection (port=%s)\n' "$server" "$port" >&2
fi >>nc-results.log 2>&1
Это добавит все данные, nc
выдаваемые на стандартном выводе, в файл, nc-report.log
если подключение будет успешным, но добавит вашу собственную ошибку, если подключение не будет выполнено.