powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Проблемы с Cron
3 сообщений из 3, страница 1 из 1
Проблемы с Cron
    #39642831
Optic969
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть скрипт,который должен пинговать каждые 5 мин по определенному адресу, переменные берутся из файлов. Но что-то пошло не так. Буду очень благодарен за любую помощь.
#!/bin/bash
$1 =` cat 1.txt`
$2 =` cat 2.txt`
rm -f LOL.txt
ping -c $1 $2 > LOG.txt
while read NUMBER
do
if [[ "$NUMBER" == *time=* ]]
then
NUM=`(grep -Po 'time=\K.*' <<< $NUMBER)`
AVGNUM=`(awk '{print $1}' <<< $NUM)`
echo $AVGNUM >> LOL.txt
fi
done < LOG.txt
awk '{sum+=$1} END {print sum/NR}' LOL.txt
...
Рейтинг: 0 / 0
Проблемы с Cron
    #39642881
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Optic969,

Код: sql
1.
ping -n -q -c 2 yandex.ru|sed -e '$!d;s!.*=[^\/]*/!!;s!/.*!!'
...
Рейтинг: 0 / 0
Проблемы с Cron
    #39642901
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Optic969Есть скрипт,который должен пинговать каждые 5 мин по определенному адресу, переменные берутся из файлов. Но что-то пошло не так. Буду очень благодарен за любую помощь.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
#!/bin/bash
 $1 =` cat 1.txt` 
 $2 =` cat 2.txt`
rm -f LOL.txt
ping -c $1 $2 > LOG.txt
while read NUMBER
    do
	if [[ "$NUMBER" == *time=* ]] 
	then 
        NUM=`(grep -Po 'time=\K.*' <<< $NUMBER)`
        AVGNUM=`(awk '{print $1}' <<< $NUM)`
        echo $AVGNUM >> LOL.txt
    	fi
    done < LOG.txt
awk '{sum+=$1} END {print sum/NR}' LOL.txt



1) И где у тебя лежат 1.txt? используй абсолютные пути, класть в пользовательские файлы в корень, не лучшая идея

2) Сильно накручено, зачем так сложно? awk все умеет и так делать
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
NUMS=5
ping -c $NUMS ya.ru | awk '
## настройка Fields Separators и счетчиков

BEGIN{FS="[= ]";avgc=0;nums=0}

## ищем вхождение "time="
/time=/{
## обновляем счетчики
 ++nums
avgc+=$11
# print $11  # test output
}

END{
## считаем среднее
if(nums==NC){
print avgc/nums
}else{

## иначе возвращаем ошибку
print "ping problem"
exit(1)
}
}' NC=$NUMS



Для awk представь идет поток, для которого последовательно применяются
...
шаблон {правило}
...
BEGIN/END - спецшаблоны для старта окончания ввода

3) Используй ТЭГИ для оформления, читать невозможно
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Проблемы с Cron
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]