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.