last
コマンドを使用して、過去1か月間にログインしたアカウントのユーザー名を表示しようとしています。
現時点で私はこれを持っています
last | awk '{print $1, $4 ,$5 ,$6}' | grep -B 10 Jul | sort -u -t' ' -k1,1
最近ログインしたユーザーがリストの上位に表示されるので、その月のgrep
を実行してから、その行とその上の行を表示し、重複するユーザー名を削除しようとしています。しかし、それは機能していないようです。何か案は?
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
を検索してください。