dosya değişikliklerini izleme + dosyalara erişimi işleme


19

Uygulama sunucusu klasörlerimde neler olduğunu görmek istiyorum, yani hangi dosyalar x işlemiyle değiştiriliyor veya *.war son x dakika içinde dosyaların dosyaların değiştirildiğini (değiştirildi / oluşturulduğunu) görmek istiyorum.

Linux'ta bu konuda yardımcı olacak bir araç var mı?


Merhaba dizinleri ve dosyaları izlemek için denetleme ayarlamak için bu kılavuza bir göz atmaya çalışın xmodulo.com/how-to-monitor-file-access-on-linux.html
Sifungurux

1
Bu soruya Google arama yoluyla ulaştım
Quentin Skousen

SystemTap'e bir göz atın. uselessuseofcat.com/?p=281
steve

Yanıtlar:



14

Strace (yukarıda ana hatlarıyla belirtildiği gibi), çalışan belirli bir yazılımın eylemlerini kontrol etmenin bir yoludur.

Bazı komutlar watch find dir/ -mmin 1, bazı dizinde son dakika değişikliklerini kontrol etmeye de yardımcı olabilir.

Tam olarak ne aradığınıza bağlı olarak, inotify araçları muhtemelen burada başka bir ticaret aracıdır.

Örneğin inotifywait -mr dir/, verilen dizindeki değişiklikleri izler ve bir dosyayı açmaya / okumayı / yazmaya / kapatmaya çalışan herhangi bir uygulamanın anında geri bildirimini verir. Ancak, inotify size hangi uygulama veya işlemin dosyaya eriştiği hakkında geri bildirim vermez - bu strace'nin yaptığı bir şeydir.

Sistem düzeyinde izlemenin, bazı kapsayıcı ortamlarında çalışan java yazılımları için genellikle sınırlı kullanım olduğunu lütfen unutmayın, çünkü yalnızca kapsayıcıyı (örn. Tomcat) görürsünüz, ancak sistemle etkileşime giren gerçek uygulamayı (örneğin .war)) görmezsiniz.


8

Lsof tarafından işlemle hangi dosyalara erişildiği hakkında bilgi alabilirsiniz :

 lsof -n -p `pidof your_app`

Ve ayet, bazı dosyalara yazma / okuma işlemi pid alabilirsiniz:

 lsof -n -t file

6

Kullanabilirsin straceTüm dosya erişimini içeren bir işlemin tüm sistem çağrılarını izlemek için .

Bir program başlatırken:

$ strace ./myserver

Ayrıca, çalışan PID ile strace ekleyebilirsiniz:

$ ps aux | grep myserver
me      1859  0.0  0.0  25288   424 ?        Ss   Sep02   0:00 myserver
$ strace -p 1859

PID tarafından değil klasöre göre de izlemek harika olurdu, teşekkür ederim. btw strace -p PID Ubuntu'da benim için çalışıyor.
Martin

0

watch find dir/ -mmin 1 benim için çalışmadı, ne sadece kopyalamak ve fark oldu:

cp -r dir /tmp/olddir
# initialize/whatever
diff -r dir /tmp/olddir

Oldukça kaynak yoğun, ancak anlık görüntü ile diffzaman arasındaki tüm değişiklikleri gösteriyor .

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.