Bagaimana saya dapat dengan cepat mengetahui apakah port 80 terbuka / mendengarkan pada server melalui skrip bash?
Biasanya pada semua workstation, daemon berjalan, tetapi terkadang gagal. Saya menggunakan perintah berikut untuk memeriksa apakah alamat IP memiliki port terbuka. Saya ingin dapat melakukan ini untuk setiap baris dalam file tanpa harus mengetik secara manual setiap kali.
nc -zw3 10.101.0.13 80 && echo "opened" || echo "closed"
File daftar terlihat seperti ini, di mana 3333
dan 3334
setelahnya adalah string$ip;
10.101.0.13; 3333
10.101.0.15; 3334
10.101.0.17; 4143
10.101.0.21; 1445
10.101.0.27; 2443
10.101.0.31; 2445
10.101.0.47; 3443
10.101.0.61; 3445
Saya harus memisahkan port terbuka dari yang tertutup, jadi saya akan memiliki daftar server gagal yang harus diperbaiki.
Saya mencoba sesuatu seperti ini tanpa hasil:
while IFS=";" read ip port ; do nc -zw3 "$ip" "$port" && echo "$ip:$port => opened" || echo "$ip:$port => closed" ; done < list.txt
while IFS=";" read ip port ; do nc -zw3 "${ip}" "${port}" && echo "${ip}:${port} => opened" || echo "${ip}:${port} => closed" ; done < list.txt
Connection to localhost 80 port [tcp/http] succeeded!
dan dengan yang buruk, dalam 10 milidetik yang sama saya mendapatkan baris kosong.
nc -zw3
shell Anda dengan satu port terbuka dan satu port tertutup dan lihat apakah itu benar-benar kembali setelah 3 detik?