#1
|
|||
|
|||
засунуть строку лога в таблицу 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
|
|||
|
|||
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
|
|||
|
|||
засунуть строку лога в таблицу 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
|
|||
|
|||
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
|
|||
|
|||
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) |