Hangi işlemin belirli bir dizine yazdığını öğrenin


19

Bir dizin / some / dir dizinim var ve her zaman yeni dosyaların göründüğünü görüyorum. Bu dosyaları hangi işlemin oluşturduğunu nasıl öğrenebilirim?

Yanıtlar:


18

Deneyin lsof +r2 | grep '/some/dir'. Bu işlem, / some / dir'e erişen ve 2 saniyede bir yenilenen işlemleri gösterecektir .


2
Thaks, bu önce ihtiyacım olana oldukça yakın, çünkü önce açık dosyaların tamamını üretiyor, sonra / some / dir ile filtreliyor. Ancak süreçler dosyaları çok hızlı bir şekilde oluşturuyor ve açık tutmuyorsa, yukarıdakilerin bazılarını bile özleyebileceğini anlıyorum. Bu durumda tek seçenek denetim alt sistemi, değil mi?
homer5439

Varsayımınız doğru. Başka bir fikir inotifywait kullanmaktır, bkz. Linux.die.net/man/1/inotifywait
weeheavy

teşekkürler, daha önce inotify araçları düşünmüştüm, ancak sadece dosya sistemi düzeyinde çalıştıklarını ve kimin ne yaptığını hakkında bilgi veremediklerini gördüm.
homer5439

18

Çekirdek auditalt sistemini kullan

auditctl -w /some/dir/ -p war -k whatsgoingon

Bu, / some / dir / altında bir şey bekleyen bir kanca oluşturur.

Sonra auditddaemon'un çalıştığından emin olun . Bundan sonra dosyalar görünene kadar bekleyin ve /var/log/auditd.logsisteminizde yazdığı yerden veya her yerden görün ve ne olduğunu ve hangi işlemle olduğunu okuyun.


Teşekkürler, muhtemelen her yerde varsayılan olarak yüklü olmayan denetim araçlarını gerektirir, ancak bu tam olarak yaptığı gibi görünüyor. Ama tamam, eğer bu bilgiye ihtiyaç varsa, her zaman kurulabilirler.
homer5439

Bunu gören insanlara not olarak: üst düzey dizinlere saatler koyamazsınız (çekirdek tarafından yasaklanmıştır)
Tony Sepia

1
Bu gerçekten etkili bir yol! Çok teşekkürler!!! BTW, işiniz bittiğinde, denetim günlüğünü sonsuza kadar yazmamak için tüm kancaları çıkarabilirsiniz auditctl -D. auditctl -lTüm kancaları listelemek için kullanabilirsiniz .
Robert

0

lsof yardım edebilir:

# lsof -r1 /some/dir/*

1
Teşekkürler. Yukarıdaki komutun bana sadece varolan dosyalara kimin eriştiğini söylediği, ancak yeni oluşturulan dosyalar için hiçbir şey göstermediği doğru mu? Anladığım kadarıyla / some / dir / *, komutun çağrıldığı sırada mevcut olan dosyaların listesine genişler.
homer5439
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.