Bashスクリプトを起動するコマンドを傍受する方法

Bashスクリプトを起動するコマンドを傍受する方法

コマンドラインで(root権限で)bashスクリプトを実行している場合は、スクリプト内で(スクリプトが実行され続けている間)起動コマンドを傍受して記録できますか?

私はより明確にしようとしました。 ./reconfig.sh -host localhost ...などのパラメータを使用してコマンドラインからスクリプトを起動します。スクリプトが実行されると、スクリプト内にログファイルが記録されますが、ここに起動コマンドも記録したいと思います。

ベストアンサー1

スクリプトを編集するオプションがある場合は、「ロガー」コマンドを追加してシステムログに必要な内容を記録できます。

私のFedoraシステムでは

/usr/bin/logger $USER が $0 を実行しました。

bashプロンプトで実行し、現在のタイムスタンプを含むログエントリを追加し、私のログインID [ロガーコマンドのPID]ソースがbashを実行したばかりです。

このロガーコマンドのメッセージに必要な情報を追加できます。他のコマンドの基準を logger コマンドに送信することもできます。

$ 0は、現在実行中のコマンドの名前を保持する特別な変数です(bashプロンプトではbashですが、スクリプトではスクリプトのファイル名になります)。

.bashrcまたは記録したいプロセスを実行するユーザーの他の起動ファイルにアクセスできる場合は、エイリアスを作成することもできます。

今試してみました。

エイリアス logls='/usr/bin/logger リストディレクトリ ls'

その後、ログイン

そして、現在のディレクトリリストとシステムログからタイムスタンプが表示されたログエントリを取得します。

エイリアスが元のスクリプトと同じ名前に設定されていると、ユーザーにとって非常に透過的になります。もちろん、エイリアス定義で元のスクリプトへのフルパスを指定する必要があるかもしれません。

おすすめ記事