• 締切済み

scriptコマンドによる操作ログの取得について(編集履歴まで)

サーバーの運用を行うにあたり、シェルや、ファイルの書き換えの際に、変更履歴を把握したいと考えています。 UNIX/Linuxであれば、OS側の「script」コマンドで、ある程度の操作をログとして取得できますが、vi等で編集した内容までは、ログとして取得できません。(viを利用して編集した、までです) そこで、catコマンドで表示した内容が、ログとして取得できることに着目しています。 勉強不足で申し訳ありませんが、たとえばviで編集を完了後に、かならずcatを自動的に発行するようなことは可能でしょうか? (理想は、ユーザに見えないように編集内容をログ取得することですが、さすがにバックグラウンドで変更内容を取得することは難しいと思っています。) 上記が実現可能であった場合、編集内容なども一つのログファイルから追えるため、非常に便利(安易な考えで申し訳ありませんが)だと考えております。 お手数ですが、ご協力いただければと思います。 以上、よろしくお願いします。

みんなの回答

  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

プログラミング出来てviコマンドのソースコードが読めるなら直接viコマンド自体を改造して終了処理内で画面にに表示するようにしたり、編集後のファイルをどこかにコピーしたりするviを作成して現状のviから置き換えですかね。 viコマンド自体に改造を行いたくない場合には、viコマンドのラッパー(wrapper)を作成してviコマンドをリネームなりPATHに設定されていないディレクトリに移動させ、viコマンドの変わりとしてラッパーを置いて、ラッパー内でリネームか移動したviコマンドを実行して、viコマンドが終了したら画面に表示なりコピーですかね。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

ひとつの案としては、vi コマンドを実行した場合に、Linux標準の vi でははく、オリジナルの vi ( vi を実行後に, cat を実行する )を起動するように、path を追加するなどが考えられます。 # env コマンドを実行すると、環境変数 path には、Linux標準の vi コマンドが格納されているディレクトリ /usr/bin/ が先頭近くに設定されていると思います。 そこで、オリジナルの vi を作成し、その vi スクリプトを格納したディレクトリを /usr/bin よりも前に追加設定しておけば、標準の vi ではなく、オリジナルの vi が起動することになります。

関連するQ&A