zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
Natrio спасибо, в очередной раз ) c регулярками тот же объем отработал за 5 секунд, ядро нагрузило до 47 процентов. |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
тренируюсь вот на кошках работает tail -f somelog | while read n do; lalal #!/bin/bash SLC () { logger 'CONNECTION' } SLD () { logger 'DISCONNECTED' } tail -f /var/log/asterisk/full | while read n; do if [ "`echo $n | grep -o 'connection$'`" = "connection" ]; then SLC && continue elif [ "`echo $n | grep -o 'disconnected$'`" = "disconnected" ]; then SLD fi; done (помню про дескриптор, это пока за рамками) периодически в лог прилетает 20к строчек (не попадающие под выборку, тоесть чисто операции сравнения). скрипт занимает 10-11 процентов проца, секунд этак на 60 ) можно как то оптимизировать процесс сравнения? 7-8 условий сравнения это процесс удлинят по времени огого. |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
Natrio спасибо. учту. по идее logortate у меня логи крутит, можно на него повестить ответственность по перезапуску парсинга лога. |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
Добрый день. Есть астериск на котором летит debug в лог. В день примерно 1.2-2.0 гига. Надо отлавливать определенные события и делать с ними всякое. Корректно ли сделать tail -f с проверкой if прилетающих строк на события? типа tail -f | while read n; do if [ парсинг строки совпал с error ]; then blabla elseif [ парсинг строки совпал и тд Или правильнее ротировать лог каждые пять минут, проверять получившийся кусок и проверять следующий? |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
да, ошибки валятся ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.201' (113) нашел, mysql блаблабл > asterisk.$I.users.txt 2>&1 || echo BOO |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
И снова добрый день ) Есть в скрипте mysql запрос делающий select mysql -C --connect-timeout=10 -h$I -u$lgn -p$pswd -e "SELECT extension,name FROM asterisk.users;" > asterisk.$I.users.txt иногда SQL недоступен и таблицы не получаю. в этом случае надо сделать всякое, но как получить переменную $? от mysql? если делаю mysql блаблабл > asterisk.$I.users.txt && echo OK || echo BOO! даже в случае ошибки подключения получаю OK сейчас проверяю полученный файл на empty отдельной проверкой, но логично было бы получать ошибку и предпринимать действия. |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
а в чем смысл имено так представлять переменную?for I in ${TEMP[*]} |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
nafanjazubastiy да, так работает, спс. |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
Natrio да, так работает. bash -x запускаю чтобы работу скрипта дебажить, там еще много чего происходит и ломается ) мне было важно понять, как передавать переменные в тело цикла, за что вам большое спасибо. |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
не подставляет второй хост Опс. не видел предыдущий пост, сейчас почитаю ) |