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 ...