Monitor isi folder berubah

18

Saya bisa memonitor perubahan konten file menggunakan perintah tail -f

Apakah ada cara yang serupa untuk memantau perubahan struktur direktori dengan cara tail -f memonitor file?

Saya memiliki proses yang berjalan lama yang menambahkan file ke jalur tertentu di bawah direktori dan saya ingin melacak incomings file karena (atau mereka) menulis (s) ke direktori dan sub direktori.

johan.i.zahri
sumber

Jawaban:

27

Sistem inotifykernel adalah apa yang Anda butuhkan.

  1. Pasang inotify-tools:

    sudo apt-get install inotify-tools
    
  2. Siapkan arloji:

    inotifywait /path/to/directory --recursive --monitor
    
  3. Duduk dan perhatikan hasilnya.


Dari man inotifywait:

-m, --monitor
   Instead of exiting  after  receiving  a  single  event,  execute
   indefinitely.   The default behaviour is to exit after the first
   event occurs.
-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.

Anda dapat menggunakan --eventopsi untuk menonton acara tertentu, seperti kreasi, modifikasi, dll.

muru
sumber
1
memetikan salah satu hit masalah ini: Gagal menonton.; batas atas jam tangan yang tidak berlaku tercapai buka di sini blog.sorah.jp/2012/01/24/inotify-limitation
johan.i.zahri
1
Pada salah satu server saya, saya menemukan itu tidak lagi disebut inotify-waitsebagai adil inotifywait. Mereka pasti mengubah nama untuk menghapus tanda hubung.
Jamesking56
@ Jamesking56 Saya mengedit tanda hubung.
muru
Catatan, bantuan untuk inotifywait mengatakan itu mengharapkan opsi sebelum path file.
Felix Dombek
8

--eventsbukan filter, Anda harus menggunakan --event. Misalnya, inilah baris perintah untuk memantau membuat / memodifikasi acara:

# inotifywait . --recursive --monitor --event CREATE --event MODIFY

Lalu saya melihat:

Setting up watches.  Beware: since -r was given, this may take a while!

Dan inilah format umpannya:

[path] [event] [file]

misalnya

./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
Selly
sumber