Giám sát thay đổi nội dung thư mục


18

Tôi có thể theo dõi sự thay đổi nội dung của tệp bằng lệnh tail -f

Có cách nào tương tự để theo dõi sự thay đổi của cấu trúc thư mục theo cách tập tin tail -f không?

Tôi có một quá trình chạy dài để thêm tệp vào một đường dẫn nhất định trong một thư mục và tôi muốn theo dõi các tệp phát sinh khi nó (hoặc chúng) ghi (các) thư mục vào thư mục và thư mục con.

Câu trả lời:


27

Các inotifyhệ thống hạt nhân là những gì bạn cần.

  1. Cài đặt inotify-tools:

    sudo apt-get install inotify-tools
    
  2. Thiết lập đồng hồ:

    inotifywait /path/to/directory --recursive --monitor
    
  3. Ngồi lại và xem đầu ra.


Từ man inotifywait:

-m, --monitor
   Instead of exiting  after  receiving  a  single  event,  execute
   indefinitely.   The default behaviour is to exit after the first
   event occurs.
-r, --recursive
   Watch all subdirectories of any directories passed as arguments.
   Watches will be set up recursively to an unlimited depth.   Sym‐
   bolic  links  are  not  traversed.  Newly created subdirectories
   will also be watched.

Bạn có thể sử dụng --eventtùy chọn để xem các sự kiện cụ thể, như tạo, sửa đổi, v.v.


1
khiến bất kỳ ai gặp phải vấn đề này: Không thể xem.; đạt đến giới hạn trên đối với đồng hồ inotify tại đây blog.sorah.jp/2012/01/24/inotify-limitation
johan.i.zahri

1
Trên một trong các máy chủ của tôi, tôi phát hiện ra nó không còn được gọi là inotify-waitchỉ của nó inotifywait. Họ phải thay đổi tên để loại bỏ dấu gạch nối.
Jamesking56

@ Jamesking56 Tôi đã chỉnh sửa dấu gạch nối.
muru

Lưu ý, trợ giúp cho inotifywait nói rằng nó mong đợi các tùy chọn trước đường dẫn tệp.
Felix Dombek

8

--eventskhông phải là bộ lọc, bạn phải sử dụng --event. Ví dụ: đây là dòng lệnh để theo dõi các sự kiện tạo / sửa đổi:

# inotifywait . --recursive --monitor --event CREATE --event MODIFY

Sau đó tôi thấy:

Setting up watches.  Beware: since -r was given, this may take a while!

Và đây là định dạng của nguồn cấp dữ liệu:

[path] [event] [file]

ví dụ

./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
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.