▪️ Базовый пример. Есть файл со списком хостов:
servers.txtПроверяем доступность всех сразу:
while read -r host; do
(
ping -c1 -W1 "$host" &>/dev/null \
&& echo "[OK] $host" \
|| echo "[FAIL] $host"
) &
done < servers.txt
wait
Все ping идут параллельно, вывод появляется почти мгновенно.
▪️ Ограничение параллелизма. Чтобы не зафлудить сеть:
MAX=10
i=0
while read -r host; do
(
ping -c1 -W1 "$host" &>/dev/null \
&& echo "[OK] $host" \
|| echo "[FAIL] $host"
) &
((i++))
((i % MAX == 0)) && wait
done < servers.txt
wait
▪️ Только упавшие хосты
ping -c1 -W1 "$host" &>/dev/null || echo "$host DOWN"
Будет полезно тем, у кого нет мониторинга, но есть 2 и более сервера.
BashTex 📱 #bash #utils