LINUX.ORG.RU

Мой первый bash скипт


0

1

Всем привет. Имеется ubuntu-server на шлюзе и довольно хреновый интернет провайдер. Поставил себе задачу написать скрипт, который будет пинговать яндекс и в случае неудачи выдавать звук beep

в результате чтения мануалов родилось нечто подобное:

#!/bin/bash

while true
do
   TEST=`ping ya.ru -c 1 | grep "1 received"`
   TEST=${TEST:0:1}
   if [ $TEST=1 ]
   then
      echo `date` success $TEST
      sleep 1
   else
      `beep`
   fi
done

Но скрипт почему-то не работает. Даже если отрубить интернет он выводит дату и success, хотя в переменной $TEST не содержится ничего



Последнее исправление: oreltrader (всего исправлений: 3)

Ура!

А что сказать-то хотел?

CrossFire ★★★★★
()

Мой первый костыль
//фксд

Провайдера надо менять, а не ставить себе «задачи» :)

amorpher ★★★★★
()

Антоша познаёт мир.

anonymous
()
Ответ на: комментарий от oreltrader

Хотя бы письмо на админский комп письмо кидать если коннекта нет более нужного интервала времени.

splinter ★★★★★
()
#!/bin/bash

while true
do
   TEST=`ping ya.ru -c 1 | grep "1 received"`
   TEST=${TEST:0:1}
   if [ $TEST=1 ]
   then
      echo `date` success $TEST
      sleep 1
   else
      `beep`
   fi
done
backbone ★★★★★
()

> пинговать яндекс

Яндекс: «В течении многих лет мы остаёмся ведущими поставщиками ICMP-пакетов!»

geekless ★★
()
while sleep 1; do ping -nqc1 ya.ru &>/dev/null || echo fail; done
uzbl
()
while [ true ]; do
    ping -c 1 {default_gw} >/dev/null || beep
    sleep 1
done

только бибикалка быстро надоест.

Slavaz ★★★★★
()

TEST=`ping ya.ru -c 1 | grep «1 received»`

Достаточно проверять результат ping. Ни TEST, ни grep не нужны. if ping -c1 ...; then ...

Casus ★★★★★
()

А вы проверяйте exit code, который ping делает ненулевым в случае неполадок:

while :
do
ping -c1 ya.ru || beep
done

AITap ★★★★★
()

Не пиши ничего. Даже на bash

Led ★★★☆☆
()

Раз провайдер у вас такое говно, пингуйте провайдера. Яндекс-то чем виноват?

Hoodoo ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.