GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara memantau pohon direktori lengkap untuk perubahan di Linux?

Saya telah melakukan hal serupa menggunakan inotifywait alat:

#!/bin/bash
while true; do

inotifywait -e modify,create,delete -r /path/to/your/dir && \
<some command to execute when a file event is recorded>

done

Ini akan mengatur jam tangan direktori rekursif di seluruh pohon dan memungkinkan Anda untuk menjalankan perintah ketika sesuatu berubah. Jika Anda hanya ingin melihat perubahannya, Anda dapat menambahkan -m tandai untuk mengalihkannya ke mode monitor.


Sepengetahuan saya, tidak ada cara lain selain menyetel inotify secara rekursif tonton di setiap direktori.

Meskipun demikian, Anda tidak akan kehabisan deskriptor file karena inotify tidak perlu memesan fd untuk menonton file atau direktori (pendahulunya, dnotify , menderita keterbatasan ini). inotify gunakan "deskriptor tontonan" sebagai gantinya.

Menurut dokumentasi untuk inotifywatch, batas defaultnya adalah 8192 deskriptor jam tangan, dan Anda dapat meningkatkannya dengan menulis nilai baru ke /proc/sys/fs/inotify/max_user_watches .


$ inotifywait -m -r /path/to/your/directory

Perintah ini cukup untuk menonton direktori secara rekursif untuk semua acara seperti akses, buka, buat, hapus ...


Linux
  1. Cara mendapatkan ukuran direktori di Linux

  2. File Diklaim Hilang – Cara memantau file untuk dihapus di Linux

  3. Bagaimana saya bisa membuat pohon direktori di C++/Linux?

  1. Cara memperbarui symlink Linux

  2. Bagaimana cara saya secara terprogram mendapatkan ruang disk kosong untuk direktori di Linux

  3. Cara mencari kata di seluruh isi direktori di linux

  1. Cara Membuat Direktori Bersama untuk Semua Pengguna di Linux

  2. Cara Menemukan File Terlama Di Pohon Direktori Di Linux

  3. Cara Mengganti Nama Direktori di Linux