使用PHP寫了一個同步ES和Redis的服務腳本,每分鐘不定時會收到很多http請求,有點擔心會失敗,打算做一個補跑的腳本,目前是想通過awk分析nginx日志檢索大于某個時間非200狀態的數據進行從新發送,但是Awk不怎么會用,只是完成了一部分。。想要的結果:通過定時任務15分鐘運行一次,然后查詢大十五分鐘前非200狀態的數據,但是現在是用grep指定時間做不到這種效果(現在自己寫的可以做到指定分鐘內,感覺1分鐘運行一次,數據太大會死循環),研究了半天也沒個結果,有沒有大佬可否幫忙在個基礎上改進一下Nginx日志格式"06/May/2019:03:03:00+0000""GET/HTTP/1.1""41""-""curl/7.29.0""10.1.7.31""-""127.0.0.1:9000""500""500""0.021""0.021""[20953311,21829304,22006993]""06/May/2019:03:07:11+0000""POST/HTTP/1.1""20""-""curl/7.29.0""10.1.7.31""-""127.0.0.1:9000""500""500""0.058""0.058""[20953311,21829304,22006993]""06/May/2019:03:15:47+0000""POST/HTTP/1.1""20""-""curl/7.29.0""10.1.7.31""-""127.0.0.1:9000""500""500""0.055""0.055""[20953311,21829304,22006993]""06/May/2019:03:16:44+0000""POST/HTTP/1.1""20""-""curl/7.29.0""10.1.7.31""-""127.0.0.1:9000""200""200""0.051""0.051""[20953311,21829304,22006993]""06/May/2019:03:40:26+0000""POST/HTTP/1.1""20""-""curl/7.29.0""10.1.7.31""-""127.0.0.1:9000""200""200""0.057""0.057""[22769461]""06/May/2019:03:41:11+0000""POST/HTTP/1.1""20""-""curl/7.29.0""10.1.7.31""-""127.0.0.1:9000""500""500""0.058""0.058""[20953311,21829304,22006993]""06/May/2019:03:41:47+0000""POST/HTTP/1.1""20""-""curl/7.29.0""10.1.7.31""-""127.0.0.1:9000""500""500""0.055""0.055""[20953311,21829304,22006993]""06/May/2019:03:42:44+0000""POST/HTTP/1.1""20""-""curl/7.29.0""10.1.7.31""-""127.0.0.1:9000""200""200""0.051""0.051""[20953311,21829304,22006993]""06/May/2019:03:43:26+0000""POST/HTTP/1.1""20""-""curl/7.29.0""10.1.7.31""-""127.0.0.1:9000""200""200""0.057""0.057""[22769461]"目前自己研究出來的AWK命令catfile.log|grep"06/May/2019:03:16"|awk-F"[\"\"]"'{if($18!=200){print$26}}'
使用Awk分析Nginx日志大于某個時間內非200狀態的數據十分感謝
一只名叫tom的貓
2019-06-21 16:43:13