web-dev-qa-db-ja.com

sshセッションで発行されたコマンドを取得する方法

「sshセッション」で実行されるすべてのコマンドをリストする必要があります。複数のsshセッションを使用してリモートサーバーにログインします。したがって、あるセッションからログアウトするときは、そのセッションでコマンドを実行する必要があります。

そのためのオプションはありますか?

5
peepeep

リモートサーバーでbashを実行している場合は、履歴が保持され、historyコマンドを使用してその履歴を取得できます。

〜/ .bash_profileを編集して、次の行を含める場合:

export HISTTIMEFORMAT="%h/%d -- %H:%M:%S "

履歴にはタイムスタンプも含まれます(現在のセッションで何を実行したか、および古代の履歴を簡単に把握できるようにするため)。

Bashがシャットダウンすると、~/.bash_logutスクリプトが実行されます。このスクリプトの最後の行を作成する場合:

history

残念ながら、接続を閉じているときに最後にぼやけてしまうのは履歴です。残念ながら、現在のセッションからだけでなく、タイムスタンプは、現在のセッションからのコマンドと古いコマンドを特定するのに役立ちます。 。

セッション間でリモートマシンの履歴を失ってもかまわない場合は、追加できます

unset HISTFILE

ログインスクリプトに。 HISTFILEが設定されていない場合、bashは履歴をファイルに保存しません。これは、ログアウト時に実行されるhistoryが現在のセッションのみを表示できることを意味します。

6
James Polley

PuTTY(または他のsshクライアント)を使用して、すべてのセッション情報を「保存」するように構成できます。

PuTTYの場合:

Session --> Login --> Session Login --> All session output

別のオプションは、コマンドを実行することです

# history >> history.log

Sshセッションを終了し、history.logファイルをダウンロードする前

最後に実行されたコマンドが一覧表示されます。

覚えておくべきコマンドの数を履歴に知らせることもできます

# vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450

お役に立てば幸いです

0
Gonzalo Murillo