Uzak bilgisayarın ssh / script erişimi için çevrimiçi olup olmadığını nasıl kontrol edebilirim?


12

Dizüstü bilgisayarımdaki verileri bir Ubuntu sunucusuna yedekleyecek bir komut dosyası yazıyorum. Bunu yapmak için, yedeklemeye başlamadan önce sunucunun kullanılabilir olup olmadığını sınamak için bir (ba) sh komutu arıyorum. ping22 numaralı bağlantı noktasında bir boole döndüren bir şey .

Bunu nasıl yapabilirim?

Yanıtlar:


21

Bunun gibi:

nc -z hostname 22 > /dev/null
echo $?

Eğer öyleyse 0kullanılabilir. Eğer öyleyse 1değil.


Bu seçeneğin yalnızca netcat-openbsd paketi ile çalıştığını unutmayın, aksi takdirde seçenek mevcut değildir:nc: invalid option -- 'z'
valentin_nasta

olmadan -wUbuntu üzerinde sonsuza sıkışmış olacak nc seçeneği
Edward Torvalds

'dan benzer bir komut alabilir miyiz
Harshal Zope

14

Netcat kullan :

nc -z localhost 22

Manpage'ten

 -z      Specifies that nc should just scan for listening daemons,
         without sending any data to them.

Lanet olsun! Beni dövüyorsun.
Bahama

2
teşekkürler, nc bilmiyordum, neden nc -z -w 2 192.168.0.123(-w zaman aşımı seçeneği, saniye olarak) zaman aşımı değil merak ediyordum : |
Amo__

Bir bağlantı noktası da belirtmeniz gerekir. nc -z -w 2 192.168.0.123 22 beklendiği gibi çalışıyor.
chris

zİçine + 1'leyin . hala tarayan her kim sadece tarama yapmadan kimin tarama yaptığını hakkında bilgi alabilirsinizidentification string
amrx

5

Alternatif:

nc -vzw 1 hostname 22

bu cevap seçilmelidir, -wseçenek olmadan ncUbuntu sonsuza kadar sıkışmış olacak
Edward Torvalds

Bool =>nc -zw 2 examplehost.com 22 && { echo "You can call your backup function" ; } || { echo "SSH Unavailable" ; }
Bay Pundir

3

Ne dersin

MACHINE=192.168.0.8
exec 3>/dev/tcp/${MACHINE}/22
if [ $? -eq 0 ]
then
    echo "SSH up"
else
    echo "SSH down"
fi

Her zaman Linux olduğunu varsaymayın. Dizüstü bilgisayarı Mac olabilir. Ve Debian devre dışı bırakır /dev/tcp. Debian türetilmiş Ubuntu da olabilir (ancak belirli bir bilgim yok). Ancak varsa /dev/tcp, evet bu kesinlikle geçerlidir.
Bahama

Geri bildiriminiz için teşekkürler, Mac'e yazdım.

teşekkürler, exec 3>/dev/tcp/${HOST}/22gerçekten "tuhaf" görünüyor bile
Amo__

Ek paketlerin yüklenmesi gerekmeyen tek cevap budur.
Chen A.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.