Нужно создать скрипт на баше
Пинг адреса одним пакетом
Если ответ на пинг получен, ждем 5 секунд и снова пингуем.
Если ответ на пинг получен, ждем 10 секунд и снова пингуем.
Если ответ на пинг получен, ждем 30 секунд и снова пингуем.
Если ответ на пинг получен, ждем 1 минуту и снова пингуем.
Все дальнейшие пинги посылаются с интервалом в 1 минуту.
Если на какой-либо из запросов ответ не получен, пингуем снова без дополнительных ожиданий.
Сделал скрипт, а он не запускается, понимаю что проблема с пробелами или отступами скорей всего, как решить?
#!/bin/bash
while [true]; do
if (ping -c 1 ya.ru);
then $k++
if [[k==1]];
then sleep 5s
elif [[k==2]];
then sleep 10s
elif [[k==3]];
then sleep 30s
elif [[k>=4]];
then sleep 60s
else $k=0
fi
done
При запуске ошибка
tmpscript: 18: tmpscript: Syntax error: "done" unexpected (expecting "fi")
Файл исполняемый.
od -c tmpscript
0000000 # ! / b i n / b a s h \n # t e s
0000020 t \n \n # 320 261 320 265 321 201 320 272 320 276 320
0000040 275 320 265 321 207 320 275 321 213 320 271 321 206 320 270
0000060 320 272 320 273 \n w h i l e [ t r u e
0000100 ] ; d o \n i f ( p i n g -
0000120 c 1 y a . r u ) ; \n t h e n
0000140 $ k + + \n i f [ [ k = = 1 ]
0000160 ] ; \n t h e n s l e e p 5 s
0000200 \n e l i f [ [ k = = 2 ] ] ; \n
0000220 t h e n s l e e p 1 0 s \n e
0000240 l i f [ [ k = = 3 ] ] ; \n t h
0000260 e n s l e e p 3 0 s \n e l i
0000300 f [ [ k > = 4 ] ] ; \n t h e n
0000320 s l e e p 6 0 s \n e l s e
0000340 $ k = 0 \n f i \n d o n e \n
0000355
ТС не появлялся на Форуме более полугода по состоянию на 14/07/2019 (последняя явка: 28/06/2017). Модератором раздела принято решение закрыть тему.
--zg_nico