forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.UNIX.BSD

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 17.08.2016, 13:58
Alexander Chernyh
Guest
 
Сообщений: n/a
По умолчанию засунуть строку лога в таблицу mysql

Alexander Chernyh написал(а) к All в Jan 15 11:24:22 по местному времени:

From: Alexander Chernyh <alexch@gc.lviv.ua>


Дд

имеется строка лога
Jan 25 23:06:13 e postfix/smtp[67533]: 44CC83B13B: to=<zzzz@zzz.net>,
orig_to=<xxxxx@xxx.ua>, relay=mxs.zzz.net[212.42.*.*]:25, delay=55105,
delays=55097/0.06/0.18/7.9, dsn=4.0.0, status=deferred (host
mxs.zzz.net[212.42.*.*] said: 451 Temporary local problem - please try
later (in reply to RCPT TO command))

имеется команда
cat $LOG | grep 'relay=' | grep origto | grep -v connuse | tr -d
\,\:\<\> | sed -e 's/relay=//' -e 's/to=//' -e 's/orig_to=//' -e
's/delay='// -e 's/status=//' | cut -d ' ' -f 1-3,6-10,13 | tr
"[:blank:]" \\t

которая разбирает строку и приводит ее к виду

Jan 25 230618 44CC83B13B zzzz@zzz.net xxxxx@xxx.ua
mxs.zzz.net[212.42.*.*]:25 55105 deferred

что и отправляется в mysql при помощи mysqlimport

внимание! хотелка
как мне оформить команду так, чтоб причина доставки/недоставки (все, что
идет в скобках после статуса status=deferred) заносилось в отдельное
поле таблицы????

--- ifmail v.2.15dev5.4
Ответить с цитированием
  #2  
Старый 17.08.2016, 13:58
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию Re: засунуть строку лога в таблицу mysql

Eugene Grosbein написал(а) к Alexander Chernyh в Jan 15 17:16:22 по местному времени:

26 янв 2015, понедельник, в 12:24 NOVT, Alexander Chernyh написал(а):

AC> что и отправляется в mysql при помощи mysqlimport
AC> внимание! хотелка
AC> как мне оформить команду так, чтоб причина доставки/недоставки (все, что
AC> идет в скобках после статуса status=deferred) заносилось в отдельное
AC> поле таблицы????

Читать доку по mysqlimport. Например, у меня так:

mysqlimport -L -u "$ldname" -p"$ldpwd" -c \
srcip,nbytes,name,src_box,src_domain,src_relay,dst_box,dst_domain,dst_relay,datestat,category,branch \
stat $dir/load/mail_stat

Во второй строке перечислены имена полей, в третьей имя базы данных
и имя файла, которое задаёт и имя таблицы (за вычетом пути к файлу).

Eugene
--
Поэты - страшные люди. У них все святое.
--- slrn/1.0.1 (FreeBSD)
Ответить с цитированием
  #3  
Старый 17.08.2016, 13:58
Victor Sudakov
Guest
 
Сообщений: n/a
По умолчанию засунуть строку лога в таблицу mysql

Victor Sudakov написал(а) к Alexander Chernyh в Jan 15 17:07:00 по местному времени:

Dear Alexander,

26 Jan 15 11:24, you wrote to All:
AC> внимание! хотелка
AC> как мне оформить команду так, чтоб причина доставки/недоставки (все,
AC> что идет в скобках после статуса status=deferred) заносилось в
AC> отдельное поле таблицы????

Я бы переписал команду на awk, используя его split().

Victor Sudakov, VAS4-RIPE, VAS47-RIPN
--- GoldED+/BSD 1.1.5-b20110223-b20110223
Ответить с цитированием
  #4  
Старый 17.08.2016, 13:58
Alexander Chernyh
Guest
 
Сообщений: n/a
По умолчанию Re: засунуть строку лога в таблицу mysql

Alexander Chernyh написал(а) к Eugene Grosbein в Jan 15 10:39:40 по местному времени:

From: Alexander Chernyh <alexch@gc.lviv.ua>



On 26.01.2015 16:16, Eugene Grosbein wrote:
> 26 янв 2015, понедельник, в 12:24 NOVT, Alexander Chernyh написал(а):
>
> AC> что и отправляется в mysql при помощи mysqlimport
> AC> внимание! хотелка
> AC> как мне оформить команду так, чтоб причина доставки/недоставки (все, что
> AC> идет в скобках после статуса status=deferred) заносилось в отдельное
> AC> поле таблицы????
>
> Читать доку по mysqlimport. Например, у меня так:
>

вопрос не о назначении полей, а о том как строку
(host mxs.zzz.net[212.42.*.*] said: 451 Temporary local problem -
please try later (in reply to RCPT TO command)
засунуть в поле таблицы

в результате преобразования скриптом я получаю значения для полей,
разделителем между колонками выступает TAB

но если я так буду разделять всю строку лога, то пробелы в host
mxs.zzz.net[212.42.*.*] said: 451 Temporary local problem - please try
later (in reply to RCPT TO command
будут заменены табами и получится , что каждому слову будет
соответствовать колонка таблицы, а я так не хочу. я хочу весь этот текст
засунуть в одно поле таблицы

ступор кароче у меня

--- ifmail v.2.15dev5.4
Ответить с цитированием
  #5  
Старый 17.08.2016, 13:58
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию Re: засунуть строку лога в таблицу mysql

Eugene Grosbein написал(а) к Alexander Chernyh в Jan 15 19:55:45 по местному времени:

27 янв 2015, вторник, в 11:39 NOVT, Alexander Chernyh написал(а):

AC> но если я так буду разделять всю строку лога, то пробелы в host

Сказать откровенно, парсилка твоя никуда не годится.
Сделай новую на нормальном языке, как минимум на awk,
ну или на perl или что там тебе ближе.

Eugene
--
Господа Действительного Положения Вещей предохраняют себя от голода своим
богатством, от общественного мнения - тайной и анонимностью,
от частной критики - законами против клеветы и тем, что средства связи
находятся в их распоряжении. (Норберт Винер)
--- slrn/1.0.1 (FreeBSD)
Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 13:05. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot