làm thế nào để kích hoạt một thư mục


25

Tôi có một kịch bản quét một thư mục và thực hiện một số bảo trì trên các tệp trong đó. Một quy trình khác tạo các tệp trong thư mục (10 - 30 tệp mỗi ngày).

Kịch bản được gọi thông qua một công việc định kỳ hàng ngày. Những gì tôi cần là kích hoạt tập lệnh trên một sự kiện (mỗi lần một tệp mới được tạo trong thư mục). Tôi thích điều này hơn là tăng tần suất của công việc định kỳ.

Làm thế nào tôi có thể làm điều đó? Có một lệnh hoặc một chương trình để cài đặt?

Cảm ơn trước sự giúp đỡ nào.

Câu trả lời:


23

inoticoming

inoticoming là một daemon để xem một thư mục có khung inotify của Linux và kích hoạt các hành động một khi các tệp có tên cụ thể được đặt trong đó.

Ví dụ, nó có thể được sử dụng để chờ các tệp .changes được tải lên một thư mục và gọi reprepro để đưa chúng vào kho lưu trữ của bạn.

incron

incron là một hệ thống "inotify cron". Nó hoạt động như cron thông thường nhưng được điều khiển bởi các sự kiện hệ thống tập tin thay vì sự kiện thời gian. Gói này cung cấp hai chương trình, một daemon gọi là "incrond" (tương tự như crond) và một trình thao tác bảng "incrontab" (như "crontab").

incron sử dụng Linux Kernel inotify tòa nhà.

Giống như cron, mỗi người dùng có thể chỉnh sửa các bảng incron của riêng mình.


2
Bạn có thể cung cấp một ví dụ? Liên kết đến các trang hướng dẫn cũng được chào đón, tôi không thể tìm thấy một cho incron, inoticomingmột trong những ở đây .
Lekensteyn

Để biết incron, hãy xem các trang của incrond, incrontab và incron.conf
Florian Diesch

2
Tôi đã chỉnh sửa câu trả lời của bạn theo cách tôi muốn xem. Tôi đã sao chép nó từ các mô tả gói, xin vui lòng mở rộng trong tương lai khi đặt tên chương trình :)
Lekensteyn

4

Ngoài ra còn có một chương trình nhỏ gọi là iwatch- xem trang man (trang này dành cho Ubuntu chính xác (12.04), nó có các liên kết đến các phiên bản ub Ubuntu khác).

iwatch có khả năng xem các thư mục theo cách đệ quy (ví dụ: các thư mục con quá) và để gửi email để đáp ứng với các sự kiện tệp / thư mục.


3

Một tiện ích khác đáng để biết là fileschanged( trang man ở đây ), có thể theo dõi sự kiện hệ thống tệp trên các tệp hoặc thư mục được chọn, ví dụ lệnh sau

fileschanged -s created -t1 $PWD

nên theo dõi thư mục hiện tại cho các sự kiện tạo tệp, viết tên của tệp đã tạo vào stdoutvới thời gian chờ 1 giây.

fileschangedcó thể xem các thư mục đệ quy (như có thể iwatchghi chú trong câu trả lời khác), không giống như incroninoticoming.


2

trang người đàn ông inotify nằm ở đó

nếu bạn thích tập lệnh python, bạn có thể sử dụng pyinotify

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.