Testar a conectividade com hosts no arquivo na porta 22 com o comando curl

3

Id gostaria de ligar o seguinte comando "curl" em um script bash e executá-lo em um hostfile de endereços IP e exibir a saída como sucesso ou falha em um arquivo de saída.

curl -v telnet 10.10.10.10:22

Isso é possível?

    
por mylan 21.06.2018 / 20:41

3 respostas

3

Usar o bash builtin para verificar portas abertas também pode funcionar:

#!/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"
    
por 21.06.2018 / 21:13
2

curl é para HTTP / HTTPS / FTP; não para SSH ou Telnet.

Eu acabei de usar o 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
    
por 21.06.2018 / 20:49
2

Esta é a sintaxe correta para o curl:

curl -v telnet://127.0.0.1:22
    
por 28.08.2018 / 17:43