The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"настройка логов скрипта (logger?)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"настройка логов скрипта (logger?)"  
Сообщение от reekoff (??) on 22-Сен-06, 09:05 
Здравствуйте!
ситуация такая:
по крону раз в 3 минуты отрабатывается скрипт переключения каналов интернет и весь вывод с него перенаправляется в файл /var/log/uplink.log.
Этот файл ротируется newsyslog'ом. Строки примерно следующие: "проверяем канал", "канал активен" или "канал не работает", "переключаемся на другой канал".
Нужно сделать так, чтобы вывод каждой строки предваряли дата и время в которое произведена запись в файл.
Чую, нужно смотреть в сторону logger(1), но не понимаю как реализовать задачу. В общем, если мне нужен logger - как им воспользоваться в данном случае? Или какие-нибудь другие решения?
Спасибо!
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "настройка логов скрипта (logger?)"  
Сообщение от micis email(ok) on 22-Сен-06, 10:13 
>Здравствуйте!
>ситуация такая:
>по крону раз в 3 минуты отрабатывается скрипт переключения каналов интернет и
>весь вывод с него перенаправляется в файл /var/log/uplink.log.
>Этот файл ротируется newsyslog'ом. Строки примерно следующие: "проверяем канал", "канал активен" или
>"канал не работает", "переключаемся на другой канал".
>Нужно сделать так, чтобы вывод каждой строки предваряли дата и время в
>которое произведена запись в файл.
>Чую, нужно смотреть в сторону logger(1), но не понимаю как реализовать задачу.
>В общем, если мне нужен logger - как им воспользоваться в
>данном случае? Или какие-нибудь другие решения?
>Спасибо!

Что может быть проще, например:
#logger -p local7.crit "test msgessage for syslog"
Т.е. либо в скрипте вместо echo пишем logger, либо в кроне вывод скрипта перенаправляем в syslog.
Затем настроить syslog, что бы такие сообщения шли в отдельный файл.

А вообще, если надо просто добавить время к каждой строке, то (положим, что искомый скрипт называется checkinet):
было (предполагаю)
# checkinet > /var/log/uplink.log
стало
# checkinet | while read line; do dt=`date`; echo $dt $line; done > /var/log/uplink.log

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "настройка логов скрипта (logger?)"  
Сообщение от reekoff (ok) on 22-Сен-06, 10:39 

>Что может быть проще, например:
>#logger -p local7.crit "test msgessage for syslog"
>Т.е. либо в скрипте вместо echo пишем logger, либо в кроне вывод
>скрипта перенаправляем в syslog.
>Затем настроить syslog, что бы такие сообщения шли в отдельный файл.
>
>А вообще, если надо просто добавить время к каждой строке, то (положим,
>что искомый скрипт называется checkinet):
>было (предполагаю)
># checkinet > /var/log/uplink.log
>стало
># checkinet | while read line; do dt=`date`; echo $dt $line; done > /var/log/uplink.log


последняя строка из крона не работает - лог вообще перестал идти.
как в кроне вывод скрипта на syslog направить?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "настройка логов скрипта (logger?)"  
Сообщение от micis email(ok) on 22-Сен-06, 11:10 
>
>>Что может быть проще, например:
>>#logger -p local7.crit "test msgessage for syslog"
>>Т.е. либо в скрипте вместо echo пишем logger, либо в кроне вывод
>>скрипта перенаправляем в syslog.
>>Затем настроить syslog, что бы такие сообщения шли в отдельный файл.
>>
>>А вообще, если надо просто добавить время к каждой строке, то (положим,
>>что искомый скрипт называется checkinet):
>>было (предполагаю)
>># checkinet > /var/log/uplink.log
>>стало
>># checkinet | while read line; do dt=`date`; echo $dt $line; done > /var/log/uplink.log
>
>
>последняя строка из крона не работает - лог вообще перестал идти.
>как в кроне вывод скрипта на syslog направить?

Не работает последняя строка? Надеюсь, ты без символа # туда вписал её? ;)
А проверить можно так:
echo -e 'line1\nline2' | while read line; do dt=`date`; echo $dt $line; done > /var/log/uplink.log
(опция -е для echo нужна, если используется bash).

PS
только сейчас заметил: надо удвоить символ >, т.е. что бы стало
... done >> /var/log/uplink.log

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "настройка логов скрипта (logger?)"  
Сообщение от reekoff (ok) on 22-Сен-06, 11:21 
>
>Не работает последняя строка? Надеюсь, ты без символа # туда вписал её?
>;)
>А проверить можно так:
>echo -e 'line1\nline2' | while read line; do dt=`date`; echo $dt $line; done > /var/log/uplink.log
>(опция -е для echo нужна, если используется bash).
>
>PS
>только сейчас заметил: надо удвоить символ >, т.е. что бы стало
>... done >> /var/log/uplink.log

конечно без #
на >> тоже сразу поправил.
проверка с консоли прошла успешно.

такая строка заработала )): */3 * * * * /usr/local/bin/uplnk | while read line; do dt=`date`; echo $dt $line; done >> /var/log/uplnk.log

так как в кроне вывод скрипта в syslog перенаправить?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "настройка логов скрипта (logger?)"  
Сообщение от micis email(??) on 23-Сен-06, 15:47 
>>
>>Не работает последняя строка? Надеюсь, ты без символа # туда вписал её?
>>;)
>>А проверить можно так:
>>echo -e 'line1\nline2' | while read line; do dt=`date`; echo $dt $line; done > /var/log/uplink.log
>>(опция -е для echo нужна, если используется bash).
>>
>>PS
>>только сейчас заметил: надо удвоить символ >, т.е. что бы стало
>>... done >> /var/log/uplink.log
>
>конечно без #
>на >> тоже сразу поправил.
>проверка с консоли прошла успешно.
>
>такая строка заработала )): */3 * * * * /usr/local/bin/uplnk | while read line; do dt=`date`; echo $dt $line; done >> /var/log/uplnk.log
>
>так как в кроне вывод скрипта в syslog перенаправить?
Ну тогда так:
*/3 * * * * OUT=`/usr/local/bin/uplnk`; logger -p local7.info "$OUT"
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "настройка логов скрипта (logger?)"  
Сообщение от user (??) on 22-Сен-06, 11:10 
>Здравствуйте!
>ситуация такая:
>по крону раз в 3 минуты отрабатывается скрипт переключения каналов интернет и
>весь вывод с него перенаправляется в файл /var/log/uplink.log.
>Этот файл ротируется newsyslog'ом. Строки примерно следующие: "проверяем канал", "канал активен" или
>"канал не работает", "переключаемся на другой канал".
>Нужно сделать так, чтобы вывод каждой строки предваряли дата и время в
>которое произведена запись в файл.
>Чую, нужно смотреть в сторону logger(1), но не понимаю как реализовать задачу.
>В общем, если мне нужен logger - как им воспользоваться в
>данном случае? Или какие-нибудь другие решения?
>Спасибо!


Немного другой вариант.
В самом скрипте сделать систему логирования через echo, приблизительно так

#!/usr/local/bin/bash
LOG_DIR="/var/log/"
LOG_FILE="uplink_`date <+%Y%m%d>`.log"
LOG="${LOG_DIR}${LOG_FILE}"
CHANNEL_ARRAY=( channel1 channel2 )

echo_func ()
{
   echo "Переключение на канал $1" >> ${LOG}
}

switch_func ()
{
   if ( ping xxx.xxx.xxx.xxx -qo -c 1 ); then echo "Канал $1 работает" >> ${LOG};
   else echo_func $1
}

for i in $CHANNEL_ARRAY[@]; do
switch_func $i;
done

Ух что-то длинно получилось :) , стоит ещё опробовать, но у меня подобная система работает.
Недостаток, по-крайней мере для меня, состоит в том что систему ротации нужно сделать самому, но это несложно, было бы желание.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "настройка логов скрипта (logger?)"  
Сообщение от reekoff (ok) on 22-Сен-06, 11:21 

>Немного другой вариант.
>В самом скрипте сделать систему логирования через echo, приблизительно так
>
>#!/usr/local/bin/bash
>LOG_DIR="/var/log/"
>LOG_FILE="uplink_`date <+%Y%m%d>`.log"
>LOG="${LOG_DIR}${LOG_FILE}"
>CHANNEL_ARRAY=( channel1 channel2 )
>
>echo_func ()
>{
>   echo "Переключение на канал $1" >> ${LOG}
>}
>
>switch_func ()
>{
>   if ( ping xxx.xxx.xxx.xxx -qo -c 1 ); then echo "Канал $1 работает" >> ${LOG};
>   else echo_func $1
>}
>
>for i in $CHANNEL_ARRAY[@]; do
>switch_func $i;
>done
>
>Ух что-то длинно получилось :) , стоит ещё опробовать, но у меня
>подобная система работает.
>Недостаток, по-крайней мере для меня, состоит в том что систему ротации нужно
>сделать самому, но это несложно, было бы желание.

тоже вариант, попробую

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "настройка логов скрипта (logger?)"  
Сообщение от user (??) on 22-Сен-06, 11:54 

>switch_func ()
>{
>   if ( ping xxx.xxx.xxx.xxx -qo -c 1 ); then echo "Канал $1 работает" >> ${LOG};
>   else echo_func $1
>}

Немного попровить

switch_func ()
{
   if ( ping xxx.xxx.xxx.xxx -qo -c 1 ); then echo "Канал $1 работает" >> ${LOG};
   else echo_func $1;
   fi
}

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру