2017-11-04 14 views
-3

日時、時刻、ユーザーのIPアドレスをサーバーにログインした場所から表示し、特定のコマンドを実行するには、historyコマンドを再設定する必要があります。履歴コマンドでこれらの情報を表示する方法はありますか?Bashの履歴に日付、時刻、ユーザーのIPを格納する方法

サンプル出力は次のようになります。あなたは、HISTTIMEFORMATを設定することにより、バッシュの歴史の中でのタイムスタンプを有効にすることができますが

Sat 04 Nov 2017 06:20:20 AM +03 111.111.111.111 : pwd Sat 04 Nov 2017 06:20:20 AM +03 111.123.123.111 : mkdir test Sat 04 Nov 2017 06:20:20 AM +03 123.123.44.32 : pwd

をセットアップするの.bash_profileまたは

+0

(言及するのを忘れ) –

+1

あなたの努力をご提示ください。あなたはこの投稿を見ることができます:https://stackoverflow.com/questions/11987761/how-to-find-date-wise-history-of-linux-commands-being-fired – codeforester

+0

あなたの返信をありがとう、私はすでにこのエントリを.bash_profileに入力すると、日付、時刻が正しく表示されます。しかし、それらのコマンドを実行するユーザーのIPアドレスを取り出すことができません。 出力は次のとおりです。 土2017年11月4日午前6時24分35秒AM 03: –

答えて

0

.bashrcのいずれかを経由してこれらの変更を私を助けて履歴ファイルのすべての行に文字列の接頭辞を付けることはできません。あなたがあなた自身の履歴ファイルを維持することによって、あなたの目標を達成するためにDEBUGトラップを使用することができます。

save_history() { 
    # make sure IP is set in .bash_profile instead of capturing it each time here 
    printf '%s : %s : %s\n' "$(date)" "$IP" "$BASH_COMMAND" >> /path/to/history_file 
} 

trap save_history DEBUG 

この方法は、save_history機能は、各コマンドの前に呼び出されると、それは、ファイル内のコマンドの履歴を記録します。


も参照してください:CentOSのサーバー上で

+0

こんにちは@codeforester あなたの答えをありがとうが、私はよく分かりませんでした。 この出力を達成するための正確な手順を指定して、IP、date with historyコマンドを見つけてください。 もう一度感謝します。 :) –

+0

'ss'と' grep'を組み合わせてIPを抽出します。 SOは無料のコード作成サービスではないことを理解してください。あなたは努力する必要があります。 – codeforester

関連する問題