shell脚本
nginx_log_tranfer_json.sh
#!/bin/bash
# nginx 处理日志转化为jsonArray
set -ue
DATE_NOW="2020-09-20 "
DATE_START=`date -d '2020-09-20 00:00:00' +%s`
DATE_END=`date -d '2020-09-20 10:30:00' +%s`
INPUT=$1
OUTPUT="exchange.json"
echo "[" > $OUTPUT
while read line
do
TIME=$DATE_NOW`echo $line | awk '{print $3}'| awk -F ':' '{print $2,$3,$4}'|sed 's/ /:/g'`
TIME_F=`date -d "$TIME" +%s`
if [[ $TIME_F -ge $DATE_START ]] && [[ $TIME_F -le $DATE_END ]]; then
echo $line | awk -F '[||]' '{print $3}'| awk -F '\"token:' '{print $1}' | sed 's/^..//;s/\\//g;s/..$/,/' >> $OUTPUT
fi
done < $INPUT
echo "]" >> $OUTPUT
内容demo
1.txt
access.log:192.168.1.1 - [18/Sep/2023:04:00:04 +0800] "<org.test.com> POST /api/open/test1/add?sign=43fdgdfghdtjy7tyjgh HTTP/1.1" 200 469 "" "Java/1.8.0_144" "0.034 0.034 ." "" || "{\"body\":{\"tradeStatusDesc\":\"已发货\",\"empId\":\"QZ117786\",\"definedCode\":\"delivered\",\"address\":\"北京\",\"productId\":\"001\",\"tradeNo\":\"123\",\"identityCardNumber\":\"123\",\"mobile\":\"123\",\"uuid\":\"123\",\"tradeTime\":\"2023-09-18 03:51:52\",\"userMobile\":\"123\",\"tradeStatus\":\"0\",\"waybillCode\":\"11\",\"username\":\"lisi\"}}" "token:Bearer aaa.bbb.ccc"
access.log:192.168.1.1 - [18/Sep/2023:10:00:04 +0800] "<org.test.com> POST /api/open/test1/add?sign=43fdgdfghdtjy7tyjgh HTTP/1.1" 200 469 "" "Java/1.8.0_144" "0.034 0.034 ." "" || "{\"body\":{\"tradeStatusDesc\":\"已发货\",\"empId\":\"QZ117786\",\"definedCode\":\"delivered\",\"address\":\"北京\",\"productId\":\"001\",\"tradeNo\":\"123\",\"identityCardNumber\":\"123\",\"mobile\":\"123\",\"uuid\":\"123\",\"tradeTime\":\"2023-09-18 03:51:52\",\"userMobile\":\"123\",\"tradeStatus\":\"0\",\"waybillCode\":\"11\",\"username\":\"zhangsan\"}}" "token:Bearer aaa.bbb.ccc"
使用
bash nginx_log_tranfer_json.sh 1.txt