Fonction pour tester si le serveur distant est présent
Notes › _DIFFUSION › Linux cli scripts
Fonction pour tester si le serveur distant est présent
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Installer openbsd-netcat
# nc -4 -d -z -w 1 &{HOST} ${PORT} &> /dev/null
#
# HOST = [ip ou nom dns de votre hôte].
# PORT = [PAS optionnel le port]
# -4 force IPv4 (ou -6 pour IPv6)
# -d Ne pas essayer de lire à partir de stdin
# -z Écoute seulement, n'envoie pas de données
# -w timeout Si une connexion et stdin sont inactifs pendant plus de timeout secondes, alors la connexion est silencieusement fermée. (Dans ce cas, nc obtiendra la sortie 1 -> échec).
# (facultatif)
# -n Si vous n'utilisez qu'une IP : Ne faites aucune recherche de DNS ou de service sur les adresses, noms d'hôtes ou ports spécifiés.
# &> /dev/null N'imprime pas la sortie de la commande.
# Host=$1 et Port=$2
# Réponse $?=0 -> OK $?=1 -> NOK
host_ok () {
nc -4 -d -z -w 1 $1 $2 &> /dev/null
}
Test si serveur répond
1
host_ok $SERVER $PORT
Alternative
1
2
3
host_ok() { timeout 1 bash -c "cat < /dev/null > /dev/tcp/$1/$2" >/dev/null 2>&1; }
# usage:
# if host_ok "$SERVER" "$PORT"; then echo OK(true); else echo NOK(false); fi