解決策 1:
last
を試すことができます コマンド:
last john
ユーザー john のログイン/アウト履歴を出力します。ただ走っているのに
last
すべてのユーザーのログイン/アウト履歴を出力します。
解決策 2:
履歴を 1 か月以上さかのぼる必要がある場合は、/var/log/wtmp.1
を読み取ることができます。 last
を含むファイル コマンド。
last -f wtmp.1 john
ユーザー john
の前月のログイン履歴が表示されます .
最後のログ出力は重すぎず、比較的簡単に解析できるので、おそらく出力を grep にパイプして特定の日付パターンを探すでしょう。
last john | grep -E 'Aug (2[0-9]|30) '
8 月 20 ~ 30 日に表示します。または次のようなもの:
last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) '
ユーザー john
の 7 月 10 ~ 30 日の取得 .
解決策 3:
<ブロック引用>Linux で特定の日付範囲のログイン履歴を抽出する方法は?
8 月 25 日から 28 日までにログインしたすべてのユーザーを一覧表示する例:
last | while read line
do
date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`
[[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line
done
awk '{ print $5" "$6" "$7 }'
last
から対応する列の日時を抽出する 出力+%s
日時をエポック時間に変換する-ge
以上を表す-le
以下を表す
last <username>
を使用して特定のユーザーに対して行うこともできます .