Как настроить stderr из nc?

Как настроить stderr из nc?

Я хотел бы проверить соединения портов 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если подключение будет успешным, но добавит вашу собственную ошибку, если подключение не будет выполнено.

Связанный контент