我想將日誌檔案的某些部分插入 mysql 中。
這是我的日誌檔:
195.xx.x.x - - [25/Apr/2017:09:60:xx +0200] "POST /userx/index.php?m=contacts&a=form&...
192.xx.x.x - - [25/Apr/2017:09:45:xx +0200] "POST /usery/index.php?m=customer&doajax=request&action=getContacts...
197.xx.x.x - - [25/Apr/2017:09:20:xx +0200] "GET /userx/index.php?m=meeting&doajax=date&id=3
在我的資料庫中我有列[idLog] [date] [user] [module] [action] [doAjax] [ajaxAction]
其中:
25/Apr/2017-->日期
userx-->使用者
m=xxx-->模組
a=xxx-->action
doajax=xxx-->doAjax
action=xxx-->ajaxAction
idLog自動遞增
所以我需要在日誌文件中插入該資訊:
INSERT INTO logs VALUES('null',25/04/2017,usery,contacts,form,null,null)
INSERT INTO logs VALUES('null',25/04/2017,usery,customer,null,request,getContacts)
INSERT INTO logs VALUES('null',25/04/2017,userz,meeting,null,date,null)
我想插入第 4 列的日期以及/userx/index.php?m=meeting&doajax=date&id=3
我的日期庫中第 7 列 ( ) 的請求的某些部分。
一些想法?
awk
我嘗試使用和for創建一個腳本 bashsed
來剪切日誌檔案的某些部分並插入到我的資料庫中
答案1
如果欄位位置恆定,例如:如果日期始終在第二個欄位中。然後您可以使用 for 迴圈處理檔案行並使用 awk 取得所需欄位並指派給變數。在循環內將帶有日期等變數值的插入查詢回顯到文件中。