Bunu denedim tracefile
. Benim için kendime göre çok daha az kibrit verdi strace ... | sed ... | sort -u
. Hatta ilave -s256
etmek strace(1)
komut satırına ama çok yardımcı olmadı ...
Sonra denedim loggedfs
. Öncelikle, oturum açmaya çalıştığım dizine okuma / yazma erişimim olmadığı için başarısız oldu. Chmod 755'i geçici olarak yaptıktan sonra bazı isabetler aldım ...
Ancak, benim için, aşağıdakileri yapmak en iyisidir:
inotifywait -m -r -e OPEN /path/to/traced/directory
Ve sonra ilgilenilen süreci çalıştırdıktan sonra çıktıyı işleyin.
Bu işlem, izlenen dizinin dosya erişim erişim ağına yetişmez ve
bu, başka bir işlemin aynı dizin ağacına erişip erişmediğini bilmez, ancak çoğu durumda bu işin yapılması için yeterli bir araçtır.
EDIT: inotifywait, sembolik bağlantı erişimini yakalamıyor (sembolik bağlantılar çözüldükten sonraki hedefler). Gelecekte kullanım için bir program tarafından erişilen kütüphaneleri arşivlediğimde buna çarpıldım. Belirli bir durumda işi yapmak için bildirilen kitaplıklardaki sembolik bağları toplamak için bazı ekstra perl korsanları kullandı.
EDIT2: en azından dosyaları inotifiye ederken ve kendilerini inotifywait komut satırından (örn. inotifywait -m file symlink
Veya inotifywait symlink file
) çıkarıp aldıklarında, hangisinin komut satırında hangisine ilk erişildiğini gösterir file
( symlink
hangisine erişilmiş olursa olsun ). inotifywait, IN_DONT_FOLLOW'u desteklemiyor - programlı olarak denediğimde file
, komut satırındaki sırasına bakılmaksızın, yalnızca birini programlı olarak denediğimde (ki bu beklediği gibi olabilir ...) sadece bir erişim sağlar.
strace
özellikle Linux ile ilgilendiğinizi farz ediyorum. Doğru?