この種の問題を追跡するのに役立つコマンドラインツールがいくつかあります。ディスク上のアクティビティの原因を調べるには、を使用しますfs_usage
。次に、bashからファイルを作成するときにスペアボリュームを監視するために使用する例を示します。
$ sudo fs_usage | grep /Volumes/Spare
Password: [enter admin password; it will not echo]
08:56:10 open /Volumes/Spare/somefile 0.000827 bash
08:56:10 lstat64 /Volumes/Spare 0.000029 fseventsd
08:56:10 getattrlist /Volumes/Spare 0.000017 Finder
08:56:10 getattrlist /Volumes/Spare 0.000030 Finder
08:56:10 getattrlist /Volumes/Spare 0.000013 Finder
08:56:10 access_extended /Volumes/Spare 0.000045 Finder
08:56:10 lstat64 /Volumes/Spare/somefile 0.000038 mdworker
08:56:10 getattrlist /Volumes/Spare/somefile 0.000023 mdworker
08:56:10 getattrlist /Volumes/Spare/somefile 0.000034 mdworker
08:56:10 open /Volumes/Spare/somefile 0.000027 mdworker
08:56:10 getattrlist /Volumes/Spare/somefile 0.000018 mdworker
08:56:10 open /Volumes/Spare/somefile 0.000016 mdworker
08:56:10 getattrlist /Volumes/Spare/somefile 0.000017 mdworker
08:56:10 getattrlist /Volumes/Spare/somefile 0.000012 mdworker
^C
(注:fs_usage
別のコマンドにパイプされると、出力を132桁表示にフォーマットします。読みやすくするには、ターミナルウィンドウを広げて一致させる必要があります。また、control-Cを使用して終了します)。ここで興味深い列は3番目(ファイルパス)と最後(プロセス名)です-この例では、bashは/ Volumes / Spare / somefileを作成し、Finderは何かが変更されたことに気づき、フォルダーの属性をチェックし、mdworker(Spotlightの一部) )新しいファイルに気付き、それを調べてボリュームの検索インデックスに追加しました。
この種の別の便利なツールはlsof
(開いているファイルを一覧表示する)です。
$ sudo lsof | grep /Volumes/Spare
mds 30 root txt REG 14,4 2 430 /Volumes/Spare/.Spotlight-V100/Store-V1/Stores/0DF7E0C0-E376-45EF-81DC-0F0C64676526/0.indexGroups
mds 30 root txt REG 14,4 2056 435 /Volumes/Spare/.Spotlight-V100/Store-V1/Stores/0DF7E0C0-E376-45EF-81DC-0F0C64676526/0.indexDirectory
mds 30 root txt REG 14,4 8 436 /Volumes/Spare/.Spotlight-V100/Store-V1/Stores/0DF7E0C0-E376-45EF-81DC-0F0C64676526/0.indexCompactDirectory
mds 30 root txt REG 14,4 2731 400 /Volumes/Spare/.Spotlight-V100/Store-V1/Stores/0DF7E0C0-E376-45EF-81DC-0F0C64676526/live.0.indexGroups
mds 30 root txt REG 14,4 1024 406 /Volumes/Spare/.Spotlight-V100/Store-V1/Stores/0DF7E0C0-E376-45EF-81DC-0F0C64676526/live.0.indexCompactDirectory
[...etc...]
ここで、プロセス名は最初の列にあり、ファイルパスは最後にあります(そして表示はさらに広くなります)。この例では、インデックスデータベースが開いた状態でmds(Spotlightの別の部分)がそこにあります。
一方でfs_usage
時間をかけて活動を見に適しています(ただし、オープンしかし、非アクティブなファイルは表示されません)、lsof
プログラムがファイルを使用しているのスナップショットを提供します(ただし、彼らがどのようにアクティブに表示されませんし、「ファイルを欠場します再び開いて使用し、すぐに閉じます)。これらのツールを組み合わせることで、何が起こっているのかをかなりよく把握できます。