/ / Come eseguire il ping su diversi host contemporaneamente (bash) linux - linux, bash, function, networking, ping

Come eseguire il ping di diversi host contemporaneamente (bash) linux - linux, bash, function, networking, ping

ip="192.168.129."
function addToList(){
list="$list $1"

}

addToList $1
for i in $ip{$list}
do
ping -c 1 $ip$1 > /dev/null

echo "Ping Status of $ip$1 : Success" ||
echo "Ping Status of $ip$1 : Failed"
done

Come posso eseguire il ping di più di un host allo stesso tempo e mostrarlo in un elenco con indirizzo IP alto o basso?

risposte:

4 per risposta № 1

Un modo è usare un più potente ping strumento come fping.

L'altro approccio è eseguire i ping in background:

for ip in $*; do
if [[ "$ip" =~ "^[0-9]+$" ]]; then
ip="192.168.129.$ip"
fi

(
ping -c 1 $ip > /dev/null
if [ $? -eq 0 ]; then
echo "node $ip is up"
else
echo "node $ip is down"
fi
)&
done

(...)& esegue uno script in background.