Hangi dosyaların açıldığını izleme


9

Hangi işlemlerin sistemdeki hangi dosyaları açtığını izlemek için bir araç var, böylece hangi işlemin belirli bir dosyaya dokunmaya devam ettiğini takip edebilirsiniz?

Lsof, işlem dosyası açıkken çalıştırıp çalıştırmadığınızı öğrenebilir, ancak arada bir çalışan kısa ömürlü bir işlemse, lsof ile yakalayamazsınız. Çekirdek izleme kullanan bir şeye ihtiyacınız var.


İnotify kontrol ettiniz mi? Örneğin @ Kees'in cevabına bakınız: askubuntu.com/questions/25442/… Cevabımda birkaç bağlantı var: askubuntu.com/questions/29566/…
belacqua

@jgbelacua bunların hiçbiri benim aradığım şey değil. Inotify, belirli bir dosyaya dokunulduğunda size söyleyebilir ve lsof, bir işlemin hangi dosyaları açtığını veya hangi işlemin bir dosyayı açtığını söyleyebilir, ancak hangi işlemin bir dosyaya dokunmaya devam ettiğini, sonra yapabileceğimden önce kapatmam gerektiğini anlamanız gerekir yakalamak için lsof çalıştırın.
psusi

Yanıtlar:


7

Bunun için belki de denetim sistemini kullanabilirsiniz. Biraz ağır bir ağırlıktır, ancak böyle bir şey çalışmalıdır (/etc/audit/audit.rules içinde):

# delete all other rules
-D

# watch the file in question
-w /path/to/file -p rwxa

ve sonra ben auditd yeniden başlatmanız gerektiğini düşünüyorum:

sudo service audit restart

(Yüklemediyseniz paket denetiminde bulunur.) Suçlu daha sonra /var/log/audit/audit.log adresinde bulunabilir.


Mükemmel! Tam da aradığım şey buydu.
psusi

0

Ne yazık ki Linux'un dosyaları izlemesine izin vermek için kullandığı mekanizma inotifydır, bu da yararlı verileri ayıklamak için yeterli bilgi sağlamaz: sadece dosya adını ve yapılan eylemi alırsınız.

Ben böyle bir şey kullanmayı denedim:

sudo inotifywait -mr somedir --format "%w%f" | while read file; do echo -n "$file => ";lsof -b $file; echo ""; done

Bu, belirtilen dizindeki olayları inotify dinler ve her olay için dosyaya dokunan işlemi yakalamak için lsof çalıştırır. Ne yazık ki test ettiğim çoğu erişim için (bir dosyaya yazmak için bir düzenleyici kullanmak gibi) LSOF komutu sadece yavaştır ve rahatsız edici işlemi yakalamayı başaramaz.

İşlemleriniz sorunlu dosyalarda biraz daha yoğun IO yapıyorsa, kilometreniz değişebilir. İyi şanslar.


0

fnotifystat, linux dosya etkinliğini izlemek için tasarlanmış bir araçtır

sudo apt-get install fnotifystat
sudo fnotifystat
Total   Open  Close   Read  Write   PID  Process         Pathname
  7.0    1.0    1.0    5.0    0.0   2075 libvirtd        /proc/cpuinfo
  6.0    2.0    2.0    2.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu0/topology/physical_package_id
  6.0    2.0    2.0    2.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu1/topology/physical_package_id
  6.0    2.0    2.0    2.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu2/topology/physical_package_id
  6.0    2.0    2.0    2.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu3/topology/physical_package_id
  4.0    1.0    1.0    2.0    0.0   2075 libvirtd        /sys/devices/system/node
  4.0    1.0    1.0    2.0    0.0   2075 libvirtd        /sys/devices/system/node/node0
  4.0    2.0    2.0    0.0    0.0  15313 gnome-calendar  /usr/share/zoneinfo/Europe/London
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu0/topology/core_id
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu0/topology/thread_siblings_list
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu1/topology/core_id
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu1/topology/thread_siblings_list
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu2/topology/core_id
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu2/topology/thread_siblings_list
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu3/topology/core_id
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu3/topology/thread_siblings_list
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/online
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/present
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/node/node0/meminfo
  2.0    0.0    0.0    0.0    2.0  12174 xchat           /home/cking/.xchat2/xchatlogs/FreeNode-#ubuntu-release.log
  1.0    0.0    0.0    0.0    1.0  12174 xchat           /home/cking/.xchat2/xchatlogs/FreeNode-#ubuntu-desktop.log
  1.0    0.0    0.0    0.0    1.0  12174 xchat           /home/cking/.xchat2/xchatlogs/FreeNode-#ubuntu-devel.log
  1.0    0.0    0.0    0.0    1.0  12174 xchat           /home/cking/.xchat2/xchatlogs/FreeNode-#ubuntu-kernel.log

Durduruluncaya kadar en iyi 10 etkin dosyayı her 60 saniyede bir göster:

sudo fnotifystat -t 10 60

Dosya etkinliğini her 10 saniyede bir sadece 6 kez göster:

sudo fnotifystat 10 6

Gök gürültüsü kuşu ve işlem kimliği 1827'nin dosya etkinliğini göster:

sudo fnotifystat -p thunderbird,1827

Her bir dosya bildirim etkinliğini ve en iyi 20 etkin etkinlik dosyasını tek bir 5 dakikalık süre içinde göster:

sudo sudo notifystat -v -d -c 5m 1

/ Sys ve / proc üzerindeki her dosya bildirim etkinliğini göstermeniz ve periyodik istatistik göstermemeniz yeterlidir:

sudo fnotifystat -n -i /sys,/proc

Daha fazla bilgi için fnotifystat kılavuz sayfasına bakınız, oldukça esnek bir araçtır.

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.