web-dev-qa-db-ja.com

最後に使用した日付以降にログインしたユーザーを表示する

lastコマンドを使用して、過去1か月間にログインしたアカウントのユーザー名を表示しようとしています。

現時点で私はこれを持っています

last | awk '{print $1, $4 ,$5 ,$6}' | grep -B 10 Jul | sort -u -t' ' -k1,1

最近ログインしたユーザーがリストの上位に表示されるので、その月のgrepを実行してから、その行とその上の行を表示し、重複するユーザー名を削除しようとしています。しかし、それは機能していないようです。何か案は?

3
jonny

util-linuxパッケージでlastのバージョンを使用していると仮定します。

last -s '2015-11-01'  | sort -k1,1 -u

あるいは:

last -s '-1 month'  | sort -k1,1 -u

または

last -s '2015-07-01' -t '2015-07-31' | sort -k1,1 -u

lastには、出力を特定の日時に制限するための-s--since)および-t--until)オプションがあります。 sort -k1,1 -uは、lastの出力の最初のフィールドだけで一意の並べ替えを行います。

詳細については、man lastを参照してください。特に、TIME FORMATSを検索してください。

3
cas