lsofに物理ファイル(ソケットではなく、TCP / IP接続ではなく、物理ファイルのみ)のみをリストする必要があることを通知するにはどうすればよいですか?
lsofに物理ファイル(ソケットではなく、TCP / IP接続ではなく、物理ファイルのみ)のみをリストする必要があることを通知するにはどうすればよいですか?
回答:
いくつかのマニュアルページを見てみると、次のコマンドを使用しているようです:
sudo lsof /
これにより、/ディレクトリ内のすべての開いているファイルが一覧表示されます。これはLinuxファイルシステム上のすべてです。テストしたばかりで、REGとDIRのみが表示されます。
その他の例:
lsof -a -d 0-999 -c <command name> /
lsof -a -d 0-999 -p <pid> /
0-999は、ファイル記述子番号を持つファイルに制限します。
/
スイッチがあるかもしれませんが、grepでフィルタリングすることを気にしない場合はsudo lsof | egrep 'REG|DIR'
、「物理ファイル」が通常のファイルとディレクトリを意味すると仮定して、できます。
man lsof
その列にある可能性のあるすべてのタイプについては、manページのOUTPUT :: TYPEセクションを参照してください。
これは私にとって完璧で、私がやったことです:
lsof -F n -p 12501 | grep ^n/ | cut -c2- | sort -u
-F n
オプションは、lsof
それだけでプリントアウトするようになります名前開いているファイルのを。開いているファイルの名前を持つ各出力行は、1文字nで始まり、すぐに名前が続きます。通常のファイルは常に、ファイルの完全な完全修飾名になります。grep ^n/
始まる名前を持つ行だけを選択します/
(絶対、完全修飾ファイル名を意味します)。したがって、開いているポート、ソケット、パイプ(FIFOなど)などcut -c2-
を削除n
します。最初の文字を削除すると、ファイル名のみが残ります。そして最後に、sort -u
重複エントリを削除します。
注意点として、これには、名前がで始まる限り、通常ではないファイルが含まれます/
。たとえば、次で始まるすべてのファイルが含まれます。
また、OSによっては他のものもあります。