web-dev-qa-db-ja.com

ユーザーのログイン日とログイン時間

ユーザーのログイン時刻とログイン日付を取得したいのですが、UNIXにユーザーのログイン日付とログイン時刻を提供するコマンドはありますか?この問題は、ユーザー名がエンドユーザーから受け入れられているシェルスクリプトで実行したいのですが、ユーザーの可用性を確認した後、そのユーザーのログイン時刻とログイン日付を別の変数にフェッチしてから、「echo」コマンドを使用して表示します。

25
Paresh Mayani

過去のログインの場合:

last "$USER_NAME"

また、コマンドwhoは現在のログインを一覧表示します。

ユーザーの最後のログインの日付を探している場合、一部のシステムはそれを直接提供します。たとえば、lastlog -u "$USER_NAME" Linuxまたはlastlogin "$USER_NAME" FreeBSD。 fingerの出力でも利用できますが、簡単に解析できる形式ではありません。いずれの場合でも、lastの出力で利用できます(多くのUNIXバリアントでは、last -n 1 "$USER_NAME"は最後のログインを示します。それ以外の場合は、last "$USER_NAME" | head -n 1)。最後のログインが最後のログアウトに対応しない場合があることに注意してください(たとえば、ユーザーが1つのOriginから長時間接続されたままで、最近、迅速なネットワークログインを行った)。

Linuxでは、ユーザーがログインしていない場合、last -R $username | awk '/still logged in/ {print $3,$4,$5,$6}'は何も返しません。それ以外の場合は、アクティブな各セッションの日付/時刻リストを返します。

-Rオプションが存続しないことを認識しない他のUNIX(ホスト名を抑制する)は、いくつかの変更が必要になります。

3
Seth L