Làm thế nào để inotify làm việc?


14

Theo Wikipedia ,

inotify là một hệ thống con nhân Linux, thông báo các thay đổi đối với hệ thống tệp. Nó thay thế dnotify trước.

Các chương trình đồng bộ hóa các tệp (như crashplan, dropbox, git) giới thiệu trong hướng dẫn sử dụng mà người dùng tăng max_user_watches( 1 , 2 , 3 ).

Từ những gì tôi hiểu về inotify, HĐH được "thông báo" rằng một tệp đã được thay đổi, thay vì yêu cầu HĐH "tìm kiếm" các thay đổi.

Tôi giả sử rằng có một tệp "inotify" được tạo trong mọi thư mục. Điều này có đúng không? Có cách nào để tương tác với inotify từ dòng lệnh không?

Tài nguyên
Tại sao các sự kiện inotify khác nhau trên một mount NFS?
Inotifywait cho số lượng lớn các tập tin trong một thư mục


Bạn có thể sẽ không tìm thấy câu trả lời cho câu hỏi của mình theo cách này (ít nhất, không dễ dàng) nhưng bạn nên chạy grep --exclude=arch -r inotifytrong các nguồn nhân Linux.

Câu trả lời:


21

Inotify là một cơ sở hạt nhân nội bộ. Không có tập tin inotify nào. Có những cuộc gọi hệ thống chuyên dụng inotify_init, inotify_add_watchinotify_rm_watchcho phép quá trình đăng ký bản thân để được thông báo khi các sự kiện hệ thống tập tin nào đó xảy ra. Khi sự kiện xảy ra, quá trình nhận được mô tả về sự kiện thông qua bộ mô tả tệp được trả về bởi inotify_init.

Hệ điều hành không phải là điều mà nói với một tập tin đã được thay đổi: nó biết, bởi vì nó đang thay đổi. Đó là ứng dụng nói rằng một tập tin đã được thay đổi thay vì phải tìm kiếm.

Chương trình inotifywaitcung cấp một cách đơn giản để sử dụng inotify từ dòng lệnh.

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.