Articles
Testen Sie die Konnektivität zu Hosts in der Datei an Port 22 mit dem Befehl curl
On Dezember 31, 2020 by admin. Sie möchten den folgenden Befehl „curl“ in ein Bash-Skript einfügen und ihn für eine Hostdatei ausführen Bei IP-Adressen wird die Ausgabe dann als Erfolg oder Misserfolg in einer Ausgabedatei angezeigt.
curl -v telnet 10.10.10.10:22
Ist dies möglich?
Antwort
Die Verwendung der integrierten Bash zur Überprüfung auf offene Ports kann ebenfalls funktionieren:
#!/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"
Kommentare
- Ich kannte ' diesen nicht. Ist es irgendwo dokumentiert? Funktioniert es auch mit IPv6?
- @Tomasz: ' ist im Bash-Referenzhandbuch 3.6 dokumentiert Weiterleitungen . Ich ' bin mir nicht sicher, ob es mit ipv6 funktioniert.
Antwort
Ich habe noch nicht den Ruf, den Beitrag zu kommentieren, der besagt, dass Curl nicht für SSH oder Telnet geeignet ist. Das ist nicht richtig. Curl verarbeitet eine Vielzahl von Protokollen, darunter Telnet, SSH, SCP, SFTP, FTP und mehr.
Dies ist die korrekte Syntax für Curl:
curl -v telnet://127.0.0.1:22
Antwort
curl
ist für HTTP / HTTPS / FTP; Nicht für SSH oder Telnet.
Ich würde nur netcat verwenden:
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
Schreibe einen Kommentar