
私はmacOS(Ventura 13.6.3)でzsh(バージョン5.9 x86_64-apple-darwin22.0)を実行しています。
特定のユーザーが過去X日以内にログインしたかどうかを知りたいです。これを達成するために、ユーザーの最後のログイン日時を取得するか、ログインしていない場合はnullを取得したいと思います。使ってみようlast
これを実行するコマンドです。私の問題は、私が実行しているとき
last -1 "john_smith"
私は次の文字列を取得します。
john_smith ttys001 Wed Dec 17 19:19 still logged in
Dec 17
を使用してこの文字列を削除できますlast -1 "john_smith" | awk '{print $4, $5}'
。しかし、Dec 17
年が含まれていないため、これは私の問題を解決しません。そうかなと思う2023
-12-17または1971
-12-17。
last
一般的なISO 8601準拠の日付(またはタイムスタンプ)を強制的に生成するか、少なくとも標準出力に年を追加することによってこれを行う方法はありますかDec 17, 2023
?または、last
特定のユーザーに対してこのデータを取得するために代わりに使用できる他のコマンドはありますか?
修正する
last
zsh v. 5.9で完全なログイン日を取得する方法が見つからず、別のコマンドを使用するようになりました(/Users
修正時間が123日以上の場合、そのコマンドの下のすべてのフォルダが見つかりました。クレジットは次のとおりです)。この記事):
find /Users -type d -maxdepth 1 -mindepth 1 -mtime +123d
答え1
によるとman last
:
-y Report the year in the session start time.
したがって、以下を実行できます。
last -1y "john_smith"
そして日付に年を表示してください。