Bir işlem tarafından açılan / erişilen dosyaları sürekli olarak izleyin


Yanıtlar:


31

İle deneyin strace -p 12345; Elde etmeye çalıştığın şeyi yapmalı.

Çıktı yalnızca açılan dosyaları görüntülemek için filtrelenebilir ( Dan D.'nin yorumu ):

strace -e open -p 12345

Not: Ayrıca çalışan işlemleri hızlı bir şekilde takip edebilirsiniz strace -e open <command>.


çıktı kolay değil ve fazladan fazla şeyler.
MA1

Bunu borularla düzeltebilirsiniz - strace -p {pid} | grep -i "Open" | tee files_opened.log. Anahtar, grepistediğiniz sistem çağrısı için çıktısını filtrelemenizi sağlayan (örn. open()).

11
@Ninefingers Aslında stracebunu seçeneği grepile daha iyi yapabilir -e:strace -e open
Dan D.

@DanD oh yeah, ofc :)

Strace komutunu öldürdüğümde, takip ettiği şeyi de öldürüyor. Bu neden oluyor (cygwin)?
CMCDragonkai

6

Yeni yardımcı program fatrace bunu yapacak: https://launchpad.net/fatrace/

sudo fatrace | grep '(6514)'

-P seçeneğini kullanmayın, bunun anlamı ya da diğer yardımcı programlarda ne anlama geldiğidir.


3

Bu, komutunuzu yeniden çalıştırmanızı ve ekranı her defasında temizlemenizi sağlar:

watch "lsof -p 12345"

UYARI: bu hızlı dosya erişimini özleyecektir ve sadece uzun süreli dosyaları görmeye uygundur


2
Bu, diğer cevaplarla karşılaştırıldığında biraz sakar strace.
David Foerster

1
Bu yanlış bir çözüm - bir işlem, dosyaları yürütme arasında kullanabilirlsof
Dor

@ Veya lsof'un zamanlamasını 1 saniyenin altına getirip hassasiyetini artırabilirsiniz. Diğerlerine göre sakar olmasına rağmen, yanlış bir çözüm olduğu için yanılıyorsunuz.
Jordon Bedwell,

Uzun bir dosya işlemine bakıyorsanız (veritabanı yedeği gibi), bu iyi bir basit alternatif olabilir.
jcalfee314
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.