美文网首页
【轻知识】通过access日志修复数据,使用sed、xargs(

【轻知识】通过access日志修复数据,使用sed、xargs(

作者: 言十年 | 来源:发表于2019-08-26 21:47 被阅读0次

    xargs 对引号的过滤是重点。

    修复数据的一种方式。把access日志中的参数重新 curl。我们框架的access日志是json格式的。(可能你想通过nginx的access去修复,那下面命令就不太适合,需要做更多的工作了)。

    我们的框架(用的swoole)中的日志格式大致如下。

    {
     "datetime":"2019-08-26T11:35:22.675+0800",
     "env":"dev",
     "log_type":"access",
     "log_level":"NOTICE",
     "app_name":"api-v2",
     "uri":"/",
     "status":1,
     "client_id":"",
     "device_id":"",
     "x_sqkb_trace_id":"",
     "x_forwarded_for":"",
     "http_code":"200",
     "ms":"0.087976455688477"
    }
    

    有同学说使用xargs的时候引号被过滤了。那接口收到的数据自然就不是正确的json。这时候需要对引号进行转义。所以用sed -e 's/"/\\"/g'

    那么命令如下

    cat  xxx_access_20190824.log | sed -e 's/"/\\"/g'| xargs -n1  curl -X POST localhost:xxx/v2/api/xxx -H 'Content-Type: application/json' -d</pre>
    

    参考链接:

    *《Why does xargs strip quotes from input?https://unix.stackexchange.com/questions/38148/why-does-xargs-strip-quotes-from-input

    相关文章

      网友评论

          本文标题:【轻知识】通过access日志修复数据,使用sed、xargs(

          本文链接:https://www.haomeiwen.com/subject/vsrjectx.html