Linuxでスクリプト用に開かれたファイルのリストを取得する方法は?


3

たとえば、pip installが何をするのか、どのファイルがダウンロードされるのか、どこに展開されるのか、一時ファイルはどこにあるのかなどを把握したいと思います。

Linuxでスクリプトによって開かれたファイルを追跡するための提案された方法はありますか?

回答:


2

Inotifyを探していると思います。指定されたパスの下のファイルおよびディレクトリへの変更を追跡します。そして、あなたが望むように機能させるための多くのオプションがあります。また、これはプロセスに依存しないため、プロセスまたはスクリプトによって行われた変更を取得できます。

また、バックエンドとしてinotifyを使用するfschangeを見ることができます。

また、GUIツールが必要な場合は、DaemonFSを確認してください


inotifyを使用して、どのファイルがどのプログラムによって変更されたかを判別する方法はありますか?
アンダーソングリーン

0

特定のpidを持つプロセスの「lsof」コマンドを使用して、開いているファイルのリストを取得できます。ここに便利な紹介があります:http : //www.akadia.com/services/lsof_intro.html

コマンドのプロセスIDを取得するには、ps ax | grep pip。それを次のようにlsofに渡すだけです:lsof -p theprocessid


次に、次の質問は、スクリプトが非常に高速に実行されるため、できるだけ早くプロセスIDを取得する方法です。さらに、スクリプトであるため、一部のファイルアクセスは、代わりに他のプログラム/スクリプトによって行われます!
ドレイクグアン

1
その場合、子プロセスを「追跡」する-fオプションと組み合わせて、straceを使用することをお勧めします。あなたは取得するつもりだたくさんかかわらず多くの出力を:)あなただけのインストールstraceの-fピップのようにそれを実行することができます。またはBibhasは言った:)
ペニーリーチ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.