web-dev-qa-db-ja.com

コマンドラインcentos / Fedora / ubuntuにすべてを記録する

私たちはネットワーク全体で100%Linuxユーザーであり、24時間体制で作業を行っています。シフト変更が発生すると、次の管理者はその時間にシフトに来て、すべての問題が発生すると問題を解決しますが、端末から履歴をクリアするだけです。同じ問題を解決するために彼らが行ったことをすべてターミナルで記録したい場合、または同様に監視できる場合は、トラブルチケットのために、報告のために更新する内部OTRSがあります。

ありがとうトン

6
neolix

ルートセッションをログに記録する場合は、 rootsh を使用します。管理者がすべてのコマンドにSudoを使用する必要がある場合は、すべてのコマンドもログに記録されます。

screen も見てみてください。これは、あなたがやろうとしていることを達成するかもしれないからです。

最終的に、ロギングはワークフローにとって最良の状況ではない可能性があります。すべての変更について更新するためにmotd、wiki、または単純なWebサイトを要求する方が良い場合があります。

3
Warner

私の 履歴ログ関数 を見て、ニーズに適合できるかどうかを確認してください。

これは私のログファイルからの典型的な行のいくつかがどのように見えるかです:

echo hello ### [email protected] Bash-4.0 /dev/pts/1 192.168.2.22 20100510 17:53 /home/user/test
cd .. ### [email protected] Bash-4.0 /dev/pts/1 192.168.2.22 20100510 17:53 /home/user/test -> /home/user

上記の最初の行には、コマンド、コメントマーカー、ユーザー/ホスト、シェルバージョン、端末デバイスとIP、日付と時刻、およびコマンドが発行されたときの現在のディレクトリが含まれています。 2行目は、cdコマンドが使用され、関数の-tオプションがアクティブな場合に生成されるエントリの例です。以前の作業ディレクトリと新しい作業ディレクトリが表示されます。

それを設定するには:

  • 関数をソースする
  • 変数を設定します
    hcmntextra='date "+%Y%m%d %R"'
  • 変数を設定します
    Prompt_COMMAND = 'hcmnt -eityl〜/.hcmnt.log "$ LOGNAME @ $ HOSTNAME Bash- $ {BASH_VERSION%。*}"'

ファイルの適切な場所を選択し、上記の手順を~/.bashrcファイルに追加します。

この関数は、いくつかのオプションのスイッチを取ります。興味のあるものの1つは-lかもしれません。これにより、コマンドがログファイルに書き込まれます。そのファイルをgrepして、再実行する必要のあるコマンドをコピーして貼り付けることができます。そのスイッチを省略すると、注釈付きの行は代わりにシェルの履歴に書き込まれ、Bashの履歴操作機能を使用して呼び出して再利用できます。注釈がコメント文字の後に続くという事実は、コマンドをそのまま再利用でき、注釈が無視されることを意味します。

これが手動オプションです。スクリプトコマンドを試してください。

script -a ticketnum.txt次に必要なことを実行しますctrl+d記録を停止し、結果のファイルをチケットに添付できます。これは、スクリプトを使用して少し自動化できると確信しています。

2
3dinfluence

シェルの履歴を記録して注釈を付けるために、 Shell_sink のようなものに興味があるかもしれません。