Назад | Перейти на главную страницу

Код выхода для тестирования ldap с использованием nc или ncat

Я пытаюсь написать сценарий оболочки, чтобы проверить, может ли сервер достичь указанного IP-адреса и порта.

Команды, которые я использую: ncat -w 5 <IP> 636 or 389 > /dev/null 2>&1 < /dev/null | echo $? Проблема в том, что когда я проверяю код выхода для двух вышеуказанных портов, я получаю 1.

Когда я запускаю его без / dev / null, я подключаюсь к ip.
ncat -v -w 5 <IP> 636 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to <IP>:636. ^C

Проблема в том, что если я использую вторую команду без / dev / null, мне нужно вручную отменить команду, используя: CTRL + C

Любые предложения о том, как я могу проверить порт ip и ldap с помощью ncat или nc?

Трубопровод здесь не имеет смысла. Использовать ; echo $? не | echo $?.

2. Shell Command Language
[...]
2.9.2 Pipelines
[...]
the exit status shall be the exit status of the last command specified in the pipeline

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_02

Попробуйте использовать -z флаг. Если он есть.

-z      Specifies that nc should just scan for listening daemons, without
        sending any data to them.  It is an error to use this option in
        conjunction with the -l option.

Так что попробуйте это

ncat -z -w 5 <IP> 636