Использую вот такую конструкцию для проверки доступности google dns
#!/bin/bash google=`ping -c 6 -q -W 2 8.8.8.8 | grep transm | awk '{print $4}'`
if [ google -eq 0 ]
then
else
fi
В момент выполнения google=`ping -c 6 -q -W 2 8.8.8.8 | grep transm | awk '{print $4}'`
На сервере скачет задержка (latency) по всем сетевым службам, по простому сказать скачет пинг.
Тоесть задача висит в кроне, и выполняется каждые две минуты. У меня открыта ssh сессия и я просто «пингую» гугл, и жду запуска скрипта. В течение в промежутках между его запуском задержка 5 мс. Когда он запускается, пара пакетов имеет задержку 200-250 мс. Следовательно это очень ошутимо для важных сетевых сервисов.
Подскажите пожалуйста, как можно видоизменить проверку сохранив функционал и избавится от такой большой задержки?
У меня есть мысль делать примерно следующее, выношу на обозрение, с вопросом - поможет ли? может есть более элегантные решения?
#!/bin/bash
touch /wrk/tst/google.ext
ping 8.8.8.8 -c 6 > /wrk/tst/google.ext
touch /wrk/tst/google.int
cat /wrk/tst/google.ext | grep transm > /wrk/tst/google.int
touch /wrk/tst/google.awk
cat /wrk/tst/google.int | awk '{print $4}' > /wrk/tst/google.awk
google='cat /wrk/tst/google.awk'
rm /wrk/tst/*
if [ google -eq 0 ]
then
else
fi
Конечно не очень красиво, но мне главное, чтобы не «глючило». Спасибо большое сообществу OpenSource!
С уважением, Ростислав.
P.S. понимаю что последнее изрекание с touch тянет на попадание в govnokod.ru