Bashスクリプトからリモートホスト名を取得する

Bashスクリプトからリモートホスト名を取得する

申し訳ありません。 Linux bashコマンドに関する私の知識は非常に基本的で、長い間検索してきましたが、何を検索するのか100%確信できません。

Linux bashスクリプトで現在ログインしているユーザーのリモートホスト名を取得する方法があるかどうか疑問に思います。ユーザーが実行するたびにログインする必要があるスクリプトがあります。私は次の日付を取得します:

cdat=`/bin/date +%a' '%d' '%h' '%Y', '%H':'%M`;

これで、リモートホストにユーザーを追加する必要があります(ログインしたユーザー名の代わりに)。また、ここで正しい用語を使用していることを100%確信できません。 「リモートホスト名」とは、SSH を介してログインするほとんどのサーバーで画面に印刷されるのと同じ出力を意味します。

Last login: Mon Jul 22 16:35:09 2013 from win7-i7-stuart.my.domain.com

私はそれを探していますwin7-i7-stuart.my.domain.com

ベストアンサー1

who
jmcnama    pts/4        Jul 18 13:30    (9010-b6m2cx1.nmgco.com)

出力が提供する最後のフィールドは次のとおりです。

username=jmcnama
remote=$(who | awk -v user=$username '$1 == user {print $(NF)}')

ユーザーが複数回ログインするなど、他の問題がある可能性があります。最後のコマンドも役立ちます。最後に問題があります。長いソースノード値が切り捨てられる可能性があります。

私が知る限り、ログインソースを示す/proc "ファイル"はありません。最後のデータは /var//log/wtmp (通常) に保存されます。したがって、これはこの情報について文書化された唯一のソースです。

おすすめ記事