cara menempatkan pemicu pada direktori

25

Saya memiliki skrip yang memindai direktori dan melakukan pemeliharaan pada file di dalamnya. Proses lain membuat file dalam direktori (10 - 30 file per hari).

Script dipanggil melalui pekerjaan cron harian. Yang saya butuhkan adalah memicu skrip pada suatu acara (setiap kali file baru dibuat di direktori). Saya lebih suka ini daripada meningkatkan frekuensi pekerjaan cron.

Bagaimana saya bisa melakukan itu? apakah ada perintah atau program untuk menginstal?

Terima kasih sebelumnya atas bantuannya.

albert green
sumber

Jawaban:

23

inoticoming

inoticoming adalah daemon untuk menonton direktori dengan kerangka kerja inotify Linux dan memicu tindakan setelah file dengan nama tertentu ditempatkan di sana.

Misalnya dapat digunakan untuk menunggu. Mengubah file yang diunggah ke dalam direktori dan memanggil reprepro untuk memasukkannya ke dalam repositori Anda.

incron

incron adalah sistem "inotify cron". Ia bekerja seperti cron biasa tetapi didorong oleh peristiwa filesystem bukannya peristiwa waktu. Paket ini menyediakan dua program, sebuah daemon yang disebut "incrond" (analog dengan crond) dan manipulator tabel "incrontab" (seperti "crontab").

incron menggunakan Linux Kernel inotify syscalls.

seperti cron, setiap pengguna dapat mengedit tabel incron sendiri.

Florian Diesch
sumber
2
Bisakah Anda memberikan contoh? Tautan ke halaman manual juga diterima, saya tidak dapat menemukan satu untuk incron, yang inoticomingada di sini .
Lekensteyn
Untuk incron, lihat halaman manual incrond, incrontab dan incron.conf
Florian Diesch
2
Saya telah mengedit jawaban Anda dengan cara yang saya inginkan. Saya menyalinnya dari deskripsi paket, harap menjadi sangat luas di masa depan ketika memberi nama program :)
Lekensteyn
4

Ada juga program kecil yang disebut iwatch- lihat halaman manual (halaman ini adalah untuk Ubuntu yang tepat (12.04), ia memiliki tautan ke versi ubuntu lainnya).

iwatch memiliki kemampuan menonton folder secara rekursif (yaitu: subfolder juga) dan mengirim email sebagai respons terhadap kejadian file / direktori.

drevicko
sumber
3

Utilitas lain yang perlu diketahui adalah fileschanged( halaman manual di sini ), yang dapat memonitor acara filesystem pada file atau direktori yang dipilih, misalnya perintah berikut

fileschanged -s created -t1 $PWD

harus memantau direktori saat ini untuk acara pembuatan file, menulis nama file yang dibuat stdoutdengan batas waktu 1 detik.

fileschangeddapat menonton folder secara rekursif ( iwatchseperti yang disebutkan dalam jawaban lain), tidak seperti incrondan inoticoming.

enzotib
sumber
2

halaman manual inotify terletak di sana

jika Anda lebih suka skrip python, Anda bisa menggunakan pyinotify

Pascal
sumber