Проверьте подключение к хостам в файле на порту 22 с помощью команды curl

Я хотел бы вставить следующую команду “curl” в скрипт bash и запустить ее для хост-файла с IP-адресами, а затем отобразить вывод как успешный или неудачный в выходном файле.

curl -v telnet 10.10.10.10:22 

Это возможно?

Использование встроенной команды bash для проверки открытых портов также может работать:

 #!/bin/bash host_file=/path/to/file.txt out_file=/path/to/out.txt while read -r ip; do if timeout 5 bash -c "cat < /dev/null >/dev/tcp/${ip}/22"; then echo -e "${ip}\tSuccess" else echo -e "${ip}\tFailure" fi >> "$out_file" done < "$host_file" 

curl для HTTP / HTTPS / FTP; не для SSH или Telnet.

Я бы просто использовал netcat:

 testport=22 # 22 for ssh; 23 for telnet; 80 for HTTP; etc. while read ip; do if nc -w2 -z $ip $testport; then echo $ip up else echo $ip down fi >> testresults.txt done < hostlist.txt 

Это правильный синтаксис для curl:

 curl -v telnet://127.0.0.1:22