Вставить части файла журнала nginx в базу данных (mysql)

Я хочу вставить некоторые части моего файла журнала в mysql.
это мой файл журнала

195.xx.xx - - [25 / апр / 2017: 09: 60: xx +0200] "POST /userx/index.php?m=contacts&a=form & ...

192.xx.xx - - [25 / апр / 2017: 09: 45: xx +0200] "POST /usery/index.php?m=customer&doajax=request&action=getContacts ...

197.xx.xx - - [25 апреля 2017 г .: 09: 20: xx +0200] "GET /userx/index.php?m=meeting&doajax=date&id=3

В моей базе данных есть столбцы [idLog] [дата] [пользователь ] [модуль] [действие] [doAjax] [ajaxAction] Где:
25 / апр / 2017 -> дата
userx -> пользователь
m = xxx -> модуль
a = xxx -> действие
doajax = xxx -> doAjax
действие = xxx -> ajaxAction
idLog имеет автоматическое увеличение

Поэтому мне нужно вставить в свой файл журнала эту информацию:
INSERT INTO регистрирует ЗНАЧЕНИЯ ('null', 25.04.2017, пользователь, контакты, форма, null, null)
INSERT INTO регистрирует ЗНАЧЕНИЯ ('null', 25.04.2017, usery, customer, null, request, getContacts)
INSERT INTO регистрирует ЗНАЧЕНИЯ ('null', 25.04.2017, userz, meeting, null, date, null)

Я хочу вставить дату, которая находится в 4-м столбце, и некоторые части запроса, которые являются 7-м столбцом (/userx/index.php?m=meeting&doajax=date&id=3)в моей базе данных.
Некоторые идеи?...Я попытался создать сценарий bash, используя awk и sed, чтобы вырезать некоторые части моего файла журнала и вставить в мою базу данных

0
26.04.2017, 11:44
1 ответ

Если позиция полей постоянна, например: если дата всегда во 2-м поле. Затем вы можете использовать цикл for для обработки строк файла и использовать awk для получения необходимого поля и назначения переменной. В цикле повторите запрос на вставку с переменными значениями даты и т. д. в файл.. и, наконец, выполните весь запрос на вставку за один раз.

0
28.01.2020, 04:46

Теги

Похожие вопросы