LoginSignup
21
22

More than 5 years have passed since last update.

audit.logのUnix時間なタイムスタンプを見やすくするワンライナー

Posted at

audit.logを確認している際にいつ出力されたログだろうっと思っても、タイムスタンプがUnix時間で記録されてて、あぁ (~_~) てなること多いと思います。

一行くらいの確認だと、dateコマンドの@を使って変換してましたが、、、

# date --date=@1396918226.579
2014年  4月  8日 火曜日 09:50:26 JST

タイムスタンプをコピペするのも面倒なので、マルっと変換するようなコマンドをawkのワンライナーを考えてみました。

# awk 'match($0,/[0-9]+/){print strftime("%c",substr($0,RSTART,RLENGTH)),$0}' /var/log/audit/audit.log

2014年04月08日 09時50分26秒 type=USER_LOGIN msg=audit(1396918226.579:2773): user pid=562 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=login acct=28756E6B6E6F776E207573657229 exe="/usr/sbin/sshd" hostname=? addr=10.0.2.15 terminal=ssh res=failed'

awkへ渡しているスクリプトを少し解説しますね。

# awk 'match($0,/[0-9]+/)          # Unix時間の文字列を前方一致でマッチさせる \
      {print strftime("%c",        # Unix時刻をstrftimeで読みやすいフォーマットに変換する \
       substr($0,RSTART,RLENGTH)), # substrで正規表現にHitしたUnix時刻を切り出す \
      $0}                          # 変換した日時と変換前のログを合わせて出力する \
        ' /var/log/audit/audit.log

ちなみに正規表現にマッチしたところを切り出す処理はこちらを参考にさせていただきました。

あと、SELinuxな資料見てたところ、ausearch使えばログが見やすくなるって記載ありましたが、そんな達人なコマンド、頭に入ってませんよー、ってことでご了承お願いします。(^_^;)

ではでは。

21
22
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
22