лог файлы на разных компьютерах и базы данных

Модератор: Модераторы разделов

socr
Сообщения: 35
ОС: Ubuntu Linux

лог файлы на разных компьютерах и базы данных

Сообщение socr »

Добрый день. Хочу написать такую програмку:
Скажем нам интересны определённэ ошибки в лог файлах на разных компьютерах, которые подключены в сеть. Мы берём определённый лог файл и сохраняем в БД только те ошибки которые нам интересны(ну или все ошибки), а затем с помощью веб интерфейса можем их просмотреть.

Допустим нас интересует ошибка:

Nov 24 00:43:23 ssh[156464] tekst

в БД предполагаю сохранять так
--------------------------------------------------------
|MONTH| DAY| TIME | TEKST |
--------------------------------------------------------
|Nov | 24 |00:43:23| tekst |
--------------------------------------------------------
Может кто подскажет как реализовать доступ к лог файлам на разных компьютерах, как разбить лог файл на записи и как работать с БД под Линух?
Заранее спасибо
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: лог файлы на разных компьютерах и базы данных

Сообщение Portnov »

Поставьте и настройте rsyslog и rsyslog-mysql для журналирования по сети. Велосипед изобретать... разве что для самообразования.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

Portnov писал(а):
25.11.2008 10:09
Поставьте и настройте rsyslog и rsyslog-mysql для журналирования по сети. Велосипед изобретать... разве что для самообразования.

В данном случае интересней изобрести велосипед :)
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: лог файлы на разных компьютерах и базы данных

Сообщение Portnov »

Ну хорошо. Доступ к лог-файлам по сети возможен только, если они расшарены по какому-нибудь протоколу: http, ftp, smb, nfs... Соответственно см. документацию на выбранный протокол. Для чтения файлов - man fopen и далее по ссылкам. Разбор строки по полям - либо вручную, либо см. man regexp и далее по ссылкам. Работа с БД - искать, например, по словам "MySQL C API" (или C API выбранной СУБД).

Это, конечно, если на C собираетесь писать. А то в комплект Python, например, готовые средства для всего этого входят, но вы же хотите настоящий, ручной работы велосипед? :)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

Portnov писал(а):
25.11.2008 13:21
Ну хорошо. Доступ к лог-файлам по сети возможен только, если они расшарены по какому-нибудь протоколу: http, ftp, smb, nfs... Соответственно см. документацию на выбранный протокол. Для чтения файлов - man fopen и далее по ссылкам. Разбор строки по полям - либо вручную, либо см. man regexp и далее по ссылкам. Работа с БД - искать, например, по словам "MySQL C API" (или C API выбранной СУБД).

Это, конечно, если на C собираетесь писать. А то в комплект Python, например, готовые средства для всего этого входят, но вы же хотите настоящий, ручной работы велосипед? :)


Несовсем так, я хочу написать shell скрипт, который считывает лог и заполняет базу данных, всё осталное буду делать на php(именно просмотр базы данных)
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: лог файлы на разных компьютерах и базы данных

Сообщение diesel »

socr писал(а):
25.11.2008 14:57
Несовсем так, я хочу написать shell скрипт, который считывает лог и заполняет базу данных, всё осталное буду делать на php(именно просмотр базы данных)

http://www.in4.org.ua/2008/08/cli-as-i-use...part-2-awk.html вот тут в конце есть пример работающего awk-скрипта который берет лог и курочит его в sql запрос. Судя по приведенной строчки из лога сделать что-то подобное для того что есть у Вас - не такая уж большая проблема. Вопрос скорее в критериях выбора конкретной строчки, того что и куда и как в базу должно писаться и так далее. То есть вопрос к подробностям.

Может кто подскажет как реализовать доступ к лог файлам на разных компьютерах,

если база предполагается типа mysql то гораздо проще загонять в базу конкретный лог с конкретного компьютера. Поставить нужный набор скриптов в cron и не париться по этому поводу. Если что-то типа sqlite, не имеющее сервера смотрящего в сеть - то можно например собирать все на той машине где база(да хотя бы scp в тот же cron) и там уже процессить.

как разбить лог файл на записи

это зависит от того что за лог файл, какие там разделители приняты, итп. общего ответа нет. частный - например по ссылке приведенной выше.

и как работать с БД под Линух?

в общем случае - так же как и под Windows. ознакомтесь с документацией к той субд которую планируете использовать.
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

diesel писал(а):
26.11.2008 13:57
socr писал(а):
25.11.2008 14:57
Несовсем так, я хочу написать shell скрипт, который считывает лог и заполняет базу данных, всё осталное буду делать на php(именно просмотр базы данных)

http://www.in4.org.ua/2008/08/cli-as-i-use...part-2-awk.html вот тут в конце есть пример работающего awk-скрипта который берет лог и курочит его в sql запрос. Судя по приведенной строчки из лога сделать что-то подобное для того что есть у Вас - не такая уж большая проблема. Вопрос скорее в критериях выбора конкретной строчки, того что и куда и как в базу должно писаться и так далее. То есть вопрос к подробностям.

Может кто подскажет как реализовать доступ к лог файлам на разных компьютерах,

если база предполагается типа mysql то гораздо проще загонять в базу конкретный лог с конкретного компьютера. Поставить нужный набор скриптов в cron и не париться по этому поводу. Если что-то типа sqlite, не имеющее сервера смотрящего в сеть - то можно например собирать все на той машине где база(да хотя бы scp в тот же cron) и там уже процессить.


База скорее всего будет mysql. если можно немного подробней что такое cron.
Но это с каждой машины запускать етот набор скриптов ели возможно с одной машины сделать сбор со всех???
И может подскажете, где можно почитать про системы анализа логов?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: лог файлы на разных компьютерах и базы данных

Сообщение diesel »

socr писал(а):
26.11.2008 17:13
если можно немного подробней что такое cron.


http://www.codenet.ru/webmast/php/cron.php
итд google(crontab)

socr писал(а):
26.11.2008 17:13
Но это с каждой машины запускать етот набор скриптов ели возможно с одной машины сделать сбор со всех???

возможно и так и так. если mysql торчит наружу, то есть его видно со всех серверов на которых планируется таким образом что-то логить, то ИМХО проще писать в базу прямо с каждой отдельной машины, не думая о схеме которая сначала передаст, а потом обработает. Да, некоторые сервисы, например proftpd умеют писать логи прямо в базу, без всякого парсанья, возможно apache тоже умеет - никогда не пробовал.

socr писал(а):
26.11.2008 17:13
И может подскажете, где можно почитать про системы анализа логов?

все в одном месте не встречал, хотя и не задавался целью найти.
Спасибо сказали:
p4s8x
Сообщения: 22

Re: лог файлы на разных компьютерах и базы данных

Сообщение p4s8x »

Если ты знаешь только PHP так и напиши себе на PHP парсер логов. Cron - запуск процессов по расписанию. Да и коль уж ты делаешь запись логов в БД, так наверное стоит писать все записи(А Вдруг Пригодятся?! ) ), а там уже из БД делать выборку.
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

Начал писать и столкнулся с проблемой, которую никак не могу решить :(
Скажем в логе есть такая запись:
Dec 7 06:45:18 box anacron[14616]: Updated timestamp for job `cron.weekly' to 2008-12-07

Как считать начиная с Updated как одну строку(и по-моему `cron.weekly' воспринимает как команду)??

#!/bin/bash
IP_MySQL_servera="localhost"
username="root"
user_passw="darius"
db_name="unix"

sql_preffix="mysql --host=${IP_MySQL_servera} \
--user=${username} --password=${user_passw} --database=${db_name}"

while read stroka
do
men=`echo "${stroka}" | awk '{print $1}'`
diena=`echo "${stroka}" | awk '{print $2}'`
laikas=`echo "${stroka}" | awk '{print $3}'`
hostas=`echo "${stroka}" | awk '{print $4}'`
application=`echo "${stroka}" | awk '{print $5}'`
pid=`echo "${stroka}" | awk '{print $6}'`
message=`echo "${stroka}" | awk '{print $7}'`
i=7
cnt=`echo "${stroka}" | awk '{print ${#}}'`

# вот здесь пробую это сделать
while [ "$i" -ne "$cnt" ]
do
i=`expr $i + 1`
message=`echo $message `echo "${stroka}" | awk '{print $i}'``
done

${sql_preffix} --execute="INSERT INTO \`SysLog\` (\`menuo\`,\`diena\`, \`laikas\`,\`hostas\`,\`application\`,\`message\`) \
values ('${men}','${diena}','${laikas}','${hostas}','${application}','${message}')"
done < $1

Может кто укажет что делаю неправильно?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: лог файлы на разных компьютерах и базы данных

Сообщение diesel »

Код: Выделить всё

pid=`echo "${stroka}" | awk '{print $6}'`
- $6 - это слово Update, между application и тем что в квадратных скобках пробела ведь нет?


Относительно строки:

Код: Выделить всё

diesel@indie:~$ echo "Dec 7 06:45:18 box anacron[14616]: Updated timestamp for job \`cron.weekly' to 2008-12-07" | perl -p -e 's!.*\[[0-9]+\]: !!'
Updated timestamp for job `cron.weekly' to 2008-12-07

или

diesel@indie:~$ echo "Dec 7 06:45:18 box anacron[14616]: Updated timestamp for job \`cron.weekly' to 2008-12-07" | sed -e 's!.*\[[0-9]*\]: !!'
Updated timestamp for job `cron.weekly' to 2008-12-07


это если допустить что скажем перед сообщением всегда стоит что-то в квадратных скобках.

ЗЫ: men, diena, laikas, hostas - а это на каком языке так? :-)
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: лог файлы на разных компьютерах и базы данных

Сообщение diesel »

socr писал(а):
08.12.2008 13:20
${sql_preffix} --execute="INSERT INTO \`SysLog\` (\`menuo\`,\`diena\`, \`laikas\`,\`hostas\`,\`application\`,\`message\`) \
values ('${men}','${diena}','${laikas}','${hostas}','${application}','${message}')"
done < $1

Может кто укажет что делаю неправильно?

а вы поставте echo для вот этой строчки, уберите <$1, и запустите. увидете что реально пытаетесь исполнить.
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

diesel писал(а):
08.12.2008 13:56
socr писал(а):
08.12.2008 13:20
${sql_preffix} --execute="INSERT INTO \`SysLog\` (\`menuo\`,\`diena\`, \`laikas\`,\`hostas\`,\`application\`,\`message\`) \
values ('${men}','${diena}','${laikas}','${hostas}','${application}','${message}')"
done < $1

Может кто укажет что делаю неправильно?

а вы поставте echo для вот этой строчки, уберите <$1, и запустите. увидете что реально пытаетесь исполнить.


В этой строчке всё нормально , а вот в message как то надо засунуть вё начиная от Update и до конца... Вот над этим вчера крутил голову и пока не выходит.
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: лог файлы на разных компьютерах и базы данных

Сообщение diesel »

socr писал(а):
08.12.2008 14:06
В этой строчке всё нормально , а вот в message как то надо засунуть вё начиная от Update и до конца... Вот над этим вчера крутил голову и пока не выходит.

смотри первую часть ответа - с sed'ом или perl'ом не работает чтоли?
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

diesel писал(а):
08.12.2008 14:18
socr писал(а):
08.12.2008 14:06
В этой строчке всё нормально , а вот в message как то надо засунуть вё начиная от Update и до конца... Вот над этим вчера крутил голову и пока не выходит.

смотри первую часть ответа - с sed'ом или perl'ом не работает чтоли?


работает, но если ло вот такой:
Dec 7 06:45:18 box syslogd 1.5.0#1ubuntu1: restart.
то выдаёт всю строку...
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: лог файлы на разных компьютерах и базы данных

Сообщение diesel »

socr писал(а):
08.12.2008 14:32
diesel писал(а):
08.12.2008 14:18
socr писал(а):
08.12.2008 14:06
В этой строчке всё нормально , а вот в message как то надо засунуть вё начиная от Update и до конца... Вот над этим вчера крутил голову и пока не выходит.

смотри первую часть ответа - с sed'ом или perl'ом не работает чтоли?


работает, но если ло вот такой:
Dec 7 06:45:18 box syslogd 1.5.0#1ubuntu1: restart.
то выдаёт всю строку...

а должно что выдавать? можешь хотя бы по одному примеру каждой из возможных строчек?
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

diesel писал(а):
08.12.2008 14:38
socr писал(а):
08.12.2008 14:32
diesel писал(а):
08.12.2008 14:18
socr писал(а):
08.12.2008 14:06
В этой строчке всё нормально , а вот в message как то надо засунуть вё начиная от Update и до конца... Вот над этим вчера крутил голову и пока не выходит.

смотри первую часть ответа - с sed'ом или perl'ом не работает чтоли?


работает, но если ло вот такой:
Dec 7 06:45:18 box syslogd 1.5.0#1ubuntu1: restart.
то выдаёт всю строку...

а должно что выдавать? можешь хотя бы по одному примеру каждой из возможных строчек?


скажем есть вот такой лог:
Dec 7 06:45:18 box syslogd 1.5.0#1ubuntu1: restart.
Dec 7 06:45:18 box anacron[5662]: Job `cron.daily' terminated
Dec 7 06:45:18 box anacron[5662]: Job `cron.weekly' started
Dec 7 06:45:18 box anacron[14616]: Updated timestamp for job `cron.weekly' to 2008-12-07
Dec 7 06:45:19 box syslogd 1.5.0#1ubuntu1: restart.
Dec 7 06:45:19 box anacron[5662]: Job `cron.weekly' terminated
Dec 7 06:45:19 box anacron[5662]: Job `cron.monthly' started
Dec 7 06:45:19 box anacron[14809]: Updated timestamp for job `cron.monthly' to 2008-12-07

то должны быть:
1.5.0#1ubuntu1: restart.
Job `cron.daily' terminated
Job `cron.weekly' started
Updated timestamp for job `cron.weekly' to 2008-12-07
1.5.0#1ubuntu1: restart.
Job `cron.weekly' terminated
Job `cron.monthly' started
Updated timestamp for job `cron.monthly' to 2008-12-07
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: лог файлы на разных компьютерах и базы данных

Сообщение diesel »

Если всего два вида строк, то можно и вот так:

Код: Выделить всё

diesel@indie:/tmp$ cat tmp
Dec 7 06:45:18 box syslogd 1.5.0#1ubuntu1: restart.
Dec 7 06:45:18 box anacron[5662]: Job `cron.daily' terminated
Dec 7 06:45:18 box anacron[5662]: Job `cron.weekly' started
Dec 7 06:45:18 box anacron[14616]: Updated timestamp for job `cron.weekly' to 2008-12-07
Dec 7 06:45:19 box syslogd 1.5.0#1ubuntu1: restart.
Dec 7 06:45:19 box anacron[5662]: Job `cron.weekly' terminated
Dec 7 06:45:19 box anacron[5662]: Job `cron.monthly' started
Dec 7 06:45:19 box anacron[14809]: Updated timestamp for job `cron.monthly' to 2008-12-07
diesel@indie:/tmp$ cat  tmp | perl -p -e 's!.*(\[[0-9]+\]:|syslogd) !!'
1.5.0#1ubuntu1: restart.
Job `cron.daily' terminated
Job `cron.weekly' started
Updated timestamp for job `cron.weekly' to 2008-12-07
1.5.0#1ubuntu1: restart.
Job `cron.weekly' terminated
Job `cron.monthly' started
Updated timestamp for job `cron.monthly' to 2008-12-07
diesel@indie:/tmp$
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

diesel писал(а):
08.12.2008 15:13
Если всего два вида строк, то можно и вот так:

Код: Выделить всё

diesel@indie:/tmp$ cat tmp
Dec 7 06:45:18 box syslogd 1.5.0#1ubuntu1: restart.
Dec 7 06:45:18 box anacron[5662]: Job `cron.daily' terminated
Dec 7 06:45:18 box anacron[5662]: Job `cron.weekly' started
Dec 7 06:45:18 box anacron[14616]: Updated timestamp for job `cron.weekly' to 2008-12-07
Dec 7 06:45:19 box syslogd 1.5.0#1ubuntu1: restart.
Dec 7 06:45:19 box anacron[5662]: Job `cron.weekly' terminated
Dec 7 06:45:19 box anacron[5662]: Job `cron.monthly' started
Dec 7 06:45:19 box anacron[14809]: Updated timestamp for job `cron.monthly' to 2008-12-07
diesel@indie:/tmp$ cat  tmp | perl -p -e 's!.*(\[[0-9]+\]:|syslogd) !!'
1.5.0#1ubuntu1: restart.
Job `cron.daily' terminated
Job `cron.weekly' started
Updated timestamp for job `cron.weekly' to 2008-12-07
1.5.0#1ubuntu1: restart.
Job `cron.weekly' terminated
Job `cron.monthly' started
Updated timestamp for job `cron.monthly' to 2008-12-07
diesel@indie:/tmp$

еммм, а маленкий вопросик, пояснение к этому 's!.*(\[[0-9]+\]:|syslogd) !!' где найти??
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: лог файлы на разных компьютерах и базы данных

Сообщение diesel »

socr писал(а):
08.12.2008 15:18
еммм, а маленкий вопросик, пояснение к этому 's!.*(\[[0-9]+\]:|syslogd) !!' где найти??

perldoc perlre
perldoc perlreref

если совсем кратко:

s!!! - это замена. формат такой же как и в sed: s!что заменяем!на что заменяем!options. Вмето восклицательных знаков могут быть другие символы, традиционно s///, но я привык вот так.

Теперь смотрим что заменяем(на что у нас пустое):

.*(\[[0-9]+\]:|syslogd)
"." - любой символ, ".*" - ноль или более символов.
Далее идут скобки и в них выражения разделенные символом |: (или вот это| или вот это),
То есть или syslogd, или \[[0-9]+\]:
\[ - просто квадратная скобка так же как и \]
[0-9]+ - одна или больше цифр.
ну и замыкает это все пробел который мы тоже хотим вырезать.

То есть фактически читать примерно так: отрезать любую последовательность символов, которая заканчивается несколькими цифрами заключенными в квадратные скобки или словом syslogd. для верности можно сделать s!^.*(\[[0-9]+\]:|syslogd)!!, где ^ - означает начало строки.
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

diesel писал(а):
08.12.2008 15:27
socr писал(а):
08.12.2008 15:18
еммм, а маленкий вопросик, пояснение к этому 's!.*(\[[0-9]+\]:|syslogd) !!' где найти??

perldoc perlre
perldoc perlreref

если совсем кратко:

s!!! - это замена. формат такой же как и в sed: s!что заменяем!на что заменяем!options. Вмето восклицательных знаков могут быть другие символы, традиционно s///, но я привык вот так.

Теперь смотрим что заменяем(на что у нас пустое):

.*(\[[0-9]+\]:|syslogd)
"." - любой символ, ".*" - ноль или более символов.
Далее идут скобки и в них выражения разделенные символом |: (или вот это| или вот это),
То есть или syslogd, или \[[0-9]+\]:
\[ - просто квадратная скобка так же как и \]
[0-9]+ - одна или больше цифр.
ну и замыкает это все пробел который мы тоже хотим вырезать.

То есть фактически читать примерно так: отрезать любую последовательность символов, которая заканчивается несколькими цифрами заключенными в квадратные скобки или словом syslogd. для верности можно сделать s!^.*(\[[0-9]+\]:|syslogd)!!, где ^ - означает начало строки.


Решил сделать чуть по другому:
application=`echo "${stroka}" | awk '{print $5}'`
message=`echo "${stroka}" | perl -p -e 's!.*(\[[0-9]+\]:|'$application') !!'`
всё работает :)
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

Имею один вопросик, а возможно с perl записать всё это но только с параметром $application ?
message=`echo "${stroka}" | perl -p -e 's!.*(\[[0-9]+\]:|'$application') !!'`
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: лог файлы на разных компьютерах и базы данных

Сообщение diesel »

socr писал(а):
08.12.2008 16:36
Имею один вопросик, а возможно с perl записать всё это но только с параметром $application ?
message=`echo "${stroka}" | perl -p -e 's!.*(\[[0-9]+\]:|'$application') !!'`

да(но лучше удостоверится перед этим что $application непустой.
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

diesel писал(а):
08.12.2008 16:50
socr писал(а):
08.12.2008 16:36
Имею один вопросик, а возможно с perl записать всё это но только с параметром $application ?
message=`echo "${stroka}" | perl -p -e 's!.*(\[[0-9]+\]:|'$application') !!'`

да(но лучше удостоверится перед этим что $application непустой.


проверял с echo application всегда заполнен..
может подскажете как записать perl с одним параметром?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: лог файлы на разных компьютерах и базы данных

Сообщение diesel »

socr писал(а):
08.12.2008 17:34
может подскажете как записать perl с одним параметром?

ммм. стоп. что значить перл с одним параметром?
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

diesel писал(а):
08.12.2008 17:47
socr писал(а):
08.12.2008 17:34
может подскажете как записать perl с одним параметром?

ммм. стоп. что значить перл с одним параметром?

примерно так: отрезать любую последовательность символов, которая заканчивается значением параметра application
Вот столкнулся с ещё одной проблемой:
те строки из приведённого выше лога кладёт в базу нормально(те записи, где нету cron) а где cron скажем такая запись:
Dec 7 06:45:18 box anacron[5662]: Job `cron.daily' terminated
выбрасывает
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'terminated')' at line 1

Что за ерунда, кто подскажет?
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

примерно так: отрезать любую последовательность символов, которая заканчивается значением параметра application
Вот столкнулся с ещё одной проблемой:
те строки из приведённого выше лога кладёт в базу нормально(те записи, где нету cron) а где cron скажем такая запись:
Dec 7 06:45:18 box anacron[5662]: Job `cron.daily' terminated
выбрасывает
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'terminated')' at line 1

тоесть он считывает всё в messageкак положено не не инсертит. инсерт такой:
${sql_preffix} --execute="INSERT INTO \`unix\` (\`menuo\`,\`diena\`, \`laikas\`,\`hostas\`,\`application\`,\`message\`) \
values ('${men}','${diena}','${laikas}','${hostas}','${application}','${message}')"
Что за ерунда, кто подскажет?
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

socr писал(а):
09.12.2008 14:59
примерно так: отрезать любую последовательность символов, которая заканчивается значением параметра application
Вот столкнулся с ещё одной проблемой:
те строки из приведённого выше лога кладёт в базу нормально(те записи, где нету cron) а где cron скажем такая запись:
Dec 7 06:45:18 box anacron[5662]: Job `cron.daily' terminated
выбрасывает
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'terminated')' at line 1

тоесть он считывает всё в messageкак положено не не инсертит. инсерт такой:
${sql_preffix} --execute="INSERT INTO \`unix\` (\`menuo\`,\`diena\`, \`laikas\`,\`hostas\`,\`application\`,\`message\`) \
values ('${men}','${diena}','${laikas}','${hostas}','${application}','${message}')"
Что за ерунда, кто подскажет?

в чём проблема разобрался :)
Осталось только исправить :)
Всё исправил, всё работает :)))
Спасибо сказали:
socr
Сообщения: 35
ОС: Ubuntu Linux

Re: лог файлы на разных компьютерах и базы данных

Сообщение socr »

Остался маленкий вопросик, как как можно работать с заархивированными логами???
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: лог файлы на разных компьютерах и базы данных

Сообщение Portnov »

zcat file.log.gz | ...
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали: