過去1時間のログエントリを抽出する方法は?

過去1時間のログエントリを抽出する方法は?

Postfixメールログファイルから過去1時間に発生したログエントリを抽出する1行のコマンドを探しています。

に基づいてこの問題、提案されたコマンドを実行してみましたが、かなり長いです。私はこれを短縮/改善することを望んでいます。現在使用しているコマンドは次のとおりです。

awk -vDate1=`date -d'now-1 hour' +%H:%M:%S` -vDate2=`date -d'now-1 hour' +%d` '{ if ($3 > Date1 && $2 >= Date2) print $0}' /var/log/maillog

電子メールログのログ形式は次のとおりです。

Jan 18 05:55:44 smtp-out-01 postfix/smtpd[8748]: connect from server.com[1.2.3.4]
Jan 18 05:55:44 smtp-out-01 postfix/smtpd[8748]: 70CF214B4: client=server.com[1.2.3.4]
Jan 18 05:55:44 smtp-out-01 postfix/cleanup[8751]: 70CF214B4: message-id=<[email protected]>
Jan 18 05:55:44 smtp-out-01 postfix/qmgr[28134]: 70CF214B4: from=<[email protected]>, size=1806, nrcpt=1 (queue active)

過去1時間のアイテムを抽出する最も短く効率的な方法は何ですか?

ベストアンサー1

journalctl -u postfix -S "$(date -d "-1 hour" +%Y"-"%m"-"%d" "%T)

-u を使用してサービス名を指定し、-S を使用して date コマンドで生成される「以降」の日付を指定します。

おすすめ記事