Hangi dosyaların okunduğunu veya yazıldığını bulun


14

Hangi dosyaların okunduğunu veya yazıldığını görmek istiyorum.

Bunun için herhangi bir program veya komut var mı? Birkaç yıl önce pencereleri kullandığımda virüs ve kötü amaçlı yazılım gizleme konumlarını avlamak için bu yöntemi kullandığımı hatırlıyorum.

Yanıtlar:


16

Bu program ("Açık dosyaları listele") .lsof

  • Sadece bir Terminal açar ve lsofyazarsanız, tüm açık dosyaların büyük bir listesini alırsınız, bunun yerine bunu tek bir komutla sınırlandırırsınız:

    lsof -c gnome-terminal
    
  • Ayrıca yazarak aramanızı belirli bir dizine kısıtlayabilirsiniz

    lsof -c gnome-terminal -a +D /tmp
    
  • Veya açık olan tüm uygulamalar dahil, tüm açık dosyaları belirli bir dizinde listeleyin:

    lsof /dev/urandom
    

Bazı işlemlerin süper kullanıcı kökü tarafından başlatıldığını unutmayın, bu sudotür işlemlerin açık dosyaları hakkında daha fazla bilgi almak için komutunuzun önüne koymanız gerekebilir .

Aramanızı daraltmak için grepbelirli satırlar kullanabilirsiniz, örneğin:

lsof /dev/urandom | grep chrome

  • FDÇıkışının (Dosya Tanıtıcı) sütununda dosya (ille ne şu anda buna oluyor değil) açılması programın amacı hakkında bilgi verir:

    • r dosyanın okuma için açıldığı anlamına gelir

    • w dosyanın yazmak için açıldığı anlamına gelir

    • u dosyanın hem okuma hem de yazma için açıldığı anlamına gelir


Daha fazla ayrıntı için kılavuz sayfasına ( man lsof) bakın. Ayrıca, dosya ve dizinlerden herhangi birine bakmanız gerekirse, Linux Dosya Sistemi Hiyerarşi Standardı çok yardımcı olur.


6

Tam bir aşırı öldürme seçeneği olarak, ancak gerçek zamanlı olarak çalışan bir seçenek olarak inotify'ı kullanabilirsiniz:

sudo inotifywait -m -r /

Bunun çok fazla bellek tüketeceğini ve kurulumunun uzun zaman alacağını unutmayın. Manpage'in dediği gibi:

   -r, --recursive
          Watch all subdirectories of any directories passed as arguments.
          Watches  will be set up recursively to an unlimited depth.  Sym‐
          bolic links are not  traversed.   Newly  created  subdirectories
          will also be watched.

          Warning:  If  you use this option while watching the root direc‐
          tory of a large tree, it may take quite a while until  all  ino‐
          tify watches are established, and events will not be received in
          this time.  Also, since one inotify watch  will  be  established
          per subdirectory, it is possible that the maximum amount of ino‐
          tify watches per user will be reached.  The default  maximum  is
          8192;  it  can  be  increased  by  writing  to /proc/sys/fs/ino‐
          tify/max_user_watches.

Bu ayrıca, hangi işlemin dosyalarla uğraştığını söylemez, ancak değişiklikleri gerçekleştikçe tanımlamaya yardımcı olabilir. "-E open" kullanmak, gerçekten yoğun bir sistemdeki gürültünün bir kısmını azaltmaya yardımcı olabilir.


Daha önce inotify / max_user_watches için daha yüksek bir limit belirleyerek veya bu limit olmadan çalışamayacağından eminim. Sistemdeki her dosyaya bir saat eklemeye çalışıyorsunuz ...
Volker Siegel
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.