Linuxで2つの日付範囲間のすべてのログ行を取得する方法

Linuxで2つの日付範囲間のすべてのログ行を取得する方法

すべて入手する方法ログ行Linuxの2つの日付範囲の間にありますか?私は次のようないくつかのコマンドを試しました。

1)awk '$0>=from&&$0<=to' from=\"Wed 21 Mar 14:52:08\" to=\"Wed21 Mar 
14:53:08\" /home/db2inst1/logs/tracestart.log 

ただし、正確な日付を含む行のみが提供されます。

2) sed -n '/Wed 21 Mar 14:52:00/,/Wed 21 Mar 14:53:08/p'  
/home/db2inst1/logs/tracestart.log  /home/db2inst1/logs/traceend.log 

これは正しいデータを提供しますが、date(Wed 21 Mar 14:52:00)正確に一致する必要があります。それ以外の場合は、最新の時刻の出力もありません。たとえば、Wed 21 Mar 14:52:01開始時間の場合、出力もありません。

ログファイルのサンプル::

2018-04-04 11:40:46 INFO  RestAssuredService:184 - some thing.......
2018-04-04 11:40:48 INFO  RestAssuredService:199 - some thing.......
2018-04-04 11:40:48 INFO  RestAssuredService:177 -
*********invokeService is 
2018-04-04 11:40:48 INFO  ProductInfoTest:57 - Response Map::::: 
{RESPONSE_TYPE=application/json, EXPECTED_RESPONSE={
"products": [
    {
        "id": 23001,
        "type": "SHIRT",
        "description": "Mens Wear Dresses",
        "price": 850,
        "brand": "PETER_ENGLAND"
    },
    {
        "id": 23002,
        "type": "KURTI",
        "description": "Womens Wear Dresses",
        "price": 899,
        "brand": "ALLEND_SOLEY"
    }
] }, 
ACTUAL_RESPONSE=com.jayway.restassured.internal.RestAssuredResponseImpl@7d48651a}
2018-04-04 11:40:48 INFO  ProductValidator:47 - EXPECTED_RESPONSE:::: {
"products": [
    {
        "id": 23001,
        "type": "SHIRT",
        "description": "Mens Wear Dresses",
        "price": 850,
        "brand": "PETER_ENGLAND"
    },
    {
        "id": 23002,
        "type": "KURTI",
        "description": "Womens Wear Dresses",
        "price": 899,
        "brand": "ALLEND_SOLEY"
    }
] }
2018-04-04 11:40:48 ERROR ProductInfoTest:65 - Exception occured::: null
2018-04-04 11:40:48 INFO  ProductInfoStepDefinations:27 - addProductDetailsApiTest Starting::::
2018-04-04 11:40:48 INFO  ProductInfoTest:53 - getAllProductsInfo starting
2018-04-04 11:40:48 INFO  RestAssuredService:170 -
*********invokeService is starting*********
2018-04-04 11:40:48 INFO  RestAssuredService:247 - Final uri:::::: rest/market/item/info
2018-04-04 11:40:48 INFO  RestAssuredService:258 - HeaderParametersMap :::::: {Accept=application/json, Content-Type=application/json

ベストアンサー1

システムで systemd を使用している場合は、journalctlログ出力の時間と日付範囲を選択できます。

からman journalctl

-S、--since=、-U、--until=指定された日付または更新日、または指定された日付または指定された日付より前の項目の表示を開始します。日付指定は「2012-10-30 18:17:16」の形式でなければなりません。時間部分を省略すると、「00:00:00」とみなされます。秒部分だけを省略すると、「:00」とみなされます。日付部分を省略すると、現在の日付と見なされます。あるいは、文字列「昨日」、「今日」、および「明日」は、それぞれ前日、今日、今日のモーレ00:00:00を表すと理解される。 「今」は現在時刻を意味します。最後に、現在の時刻の前または後の時刻をそれぞれ参照するために、「-」または「+」プレフィックスが付いた相対時間を指定できます。完全な時間と日付の仕様については、systemd.time(7)を参照してください。 --output=short-full は、この形式に正確に従うタイムスタンプを出力します。

これを--userオプションといくつかのオプションと組み合わせてgrepシステムメッセージをフィルタリングして混乱を軽減します。システムが systemd を使用しない場合、またはプログラム・メッセージがジャーナリングによってキャプチャーされない場合は、別のものが必要になる場合があります。

おすすめ記事