TOK:
- Bash ve
timeout
- kullanma
nc
- komuta
- RHEL 6 (nc-1.84)
- RHEL 7 (nmap-ncat-6.40)
- Uyarılar
Bash ve kullanarak timeout
:
timeout
RHEL 6+ ile mevcut olması veya GNU coreutils 8.22'de bulunması gerektiğini unutmayın . MacOS'ta kullanarak yükleyin brew install coreutils
ve olarak kullanın gtimeout
.
Komut:
$ timeout $TIMEOUT_SECONDS bash -c "</dev/tcp/${HOST}/${PORT}"; echo $?
Ana bilgisayarı ve bağlantı noktasını parametrelendirirseniz, bunları yukarıda olduğu gibi ${HOST}
ve belirttiğinizden emin olun ${PORT}
. Bunları yalnızca $HOST
ve diğer bir $PORT
deyişle parantez olmadan belirtmeyin ; bu durumda çalışmaz.
Misal:
Başarı:
$ timeout 2 bash -c "</dev/tcp/canyouseeme.org/80"; echo $?
0
Başarısızlık:
$ timeout 2 bash -c "</dev/tcp/canyouseeme.org/81"; echo $?
124
Sitesinin çıkış durumunu korumanız gerekiyorsa bash
,
$ timeout --preserve-status 2 bash -c "</dev/tcp/canyouseeme.org/81"; echo $?
143
Kullanma nc
:
nc
RHEL 7'ye geriye dönük uyumsuz bir sürümün yüklendiğini unutmayın.
Komut:
Aşağıdaki komutun hem RHEL 6 hem de 7 için aynı olması bakımından benzersiz olduğunu unutmayın. Sadece kurulum ve çıkış farklıdır.
$ nc -w $TIMEOUT_SECONDS -v $HOST $PORT </dev/null; echo $?
RHEL 6 (nc-1.84):
Kurulum:
$ sudo yum install nc
Örnekler:
Başarı:
$ nc -w 2 -v canyouseeme.org 80 </dev/null; echo $?
Connection to canyouseeme.org 80 port [tcp/http] succeeded!
0
Başarısızlık:
$ nc -w 2 -v canyouseeme.org 81 </dev/null; echo $?
nc: connect to canyouseeme.org port 81 (tcp) timed out: Operation now in progress
1
Ana bilgisayar adı birden çok IP ile eşleşirse, yukarıdaki başarısız komut bunların birçoğu veya tümü arasında geçiş yapar. Örneğin:
$ nc -w 2 -v microsoft.com 81 </dev/null; echo $?
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
1
RHEL 7 (nmap-ncat-6.40):
Kurulum:
$ sudo yum install nmap-ncat
Örnekler:
Başarı:
$ nc -w 2 -v canyouseeme.org 80 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 52.202.215.126:80.
Ncat: 0 bytes sent, 0 bytes received in 0.22 seconds.
0
Başarısızlık:
$ nc -w 2 -v canyouseeme.org 81 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection timed out.
1
Ana bilgisayar adı birden çok IP ile eşleşirse, yukarıdaki başarısız komut bunların birçoğu veya tümü arasında geçiş yapar. Örneğin:
$ nc -w 2 -v microsoft.com 81 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection to 104.43.195.251 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 23.100.122.175 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 23.96.52.53 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 191.239.213.197 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection timed out.
1
Uyarılar:
-v
( --verbose
) Bağımsız değişken ve echo $?
komutu sadece gösterim amacıyla elbette.