Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình Bash

Watchman:Công cụ giám sát thay đổi thư mục và tệp hiệu quả

Người canh gác là một dịch vụ xem tệp đa nền tảng và mã nguồn mở giúp xem các tệp và bản ghi hoặc thực hiện các hành động khi chúng thay đổi. Nó được phát triển bởi Facebook và chạy trên Linux, OS X, FreeBSD và Solaris. Nó chạy theo mô hình máy khách-máy chủ và sử dụng tiện ích inotify của nhân Linux để cung cấp thông báo mạnh mẽ hơn.

Những khái niệm hữu ích về Watchman

  • Nó theo dõi đệ quy một hoặc nhiều cây thư mục.
  • Mỗi thư mục đã xem được gọi là thư mục gốc.
  • Nó có thể được định cấu hình thông qua dòng lệnh hoặc tệp cấu hình được viết ở định dạng JSON.
  • Nó ghi lại những thay đổi đối với tệp nhật ký.
  • Hỗ trợ đăng ký các thay đổi tệp xảy ra trong thư mục gốc.
  • Cho phép bạn truy vấn gốc để biết các thay đổi của tệp kể từ lần cuối bạn kiểm tra hoặc trạng thái hiện tại của cây.
  • Nó có thể xem toàn bộ dự án.

Trong bài viết này, chúng tôi sẽ giải thích cách cài đặt và sử dụng watchman để xem (giám sát) các tập tin và ghi lại khi chúng thay đổi trong Linux. Chúng tôi cũng sẽ trình bày ngắn gọn cách xem một thư mục và gọi tập lệnh khi nó thay đổi.

Cài đặt dịch vụ xem tệp Watchman trong Linux

Chúng tôi sẽ cài đặt watchman dịch vụ từ các nguồn, vì vậy trước tiên hãy cài đặt các phần phụ thuộc bắt buộc này libssl-dev , tự động xác nhận , tự động hóa libtool , công cụ thiết lập , python-develsự phóng đãng sử dụng lệnh sau trên bản phân phối Linux của bạn.

----------- On Debian/Ubuntu ----------- 
$ sudo apt install autoconf automake build-essential python-setuptools python-dev libssl-dev libtool 
----------- On RHEL/CentOS -----------
# yum install autoconf automake python-setuptools python-devel openssl-devel libssl-devel libtool 
# yum groupinstall 'Development Tools' 
----------- On Fedora -----------
$ sudo dnf install autoconf automake python-setuptools openssl-devel libssl-devel libtool 
$ sudo dnf groupinstall 'Development Tools' 

Sau khi cài đặt các phần phụ thuộc cần thiết, bạn có thể bắt đầu xây dựng watchman bằng cách tải xuống kho lưu trữ github của nó, di chuyển vào kho lưu trữ cục bộ, định cấu hình, xây dựng và cài đặt nó bằng các lệnh sau.

$ git clone https://github.com/facebook/watchman.git
$ cd watchman
$ git checkout v4.9.0 
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

Xem tệp và thư mục bằng Watchman trong Linux

Người canh gác có thể được định cấu hình theo hai cách:(1) thông qua dòng lệnh trong khi daemon đang chạy ở chế độ nền hoặc (2) thông qua tệp cấu hình được viết ở định dạng JSON.

Để xem một thư mục (ví dụ ~/bin ) để thay đổi, hãy chạy lệnh sau.

$ watchman watch ~/bin/
Watchman:Công cụ giám sát thay đổi thư mục và tệp hiệu quả Xem thư mục trong Linux

Lệnh sau ghi tệp cấu hình có tên state dưới /usr/local/var/run/watchman/-state/ , ở định dạng JSON cũng như tệp nhật ký có tên log ở cùng một vị trí.

Bạn có thể xem hai tệp bằng lệnh cat as show.

$ cat /usr/local/var/run/watchman/aaronkilik-state/state
$ cat /usr/local/var/run/watchman/aaronkilik-state/log

Bạn cũng có thể xác định hành động nào sẽ kích hoạt khi một thư mục đang được theo dõi để phát hiện các thay đổi. Ví dụ:trong lệnh sau, ‘test-trigger ‘ là tên của trình kích hoạt và ~bin/pav.sh là tập lệnh sẽ được gọi khi phát hiện có thay đổi trong thư mục đang được theo dõi.

Vì mục đích thử nghiệm, pav.sh tập lệnh chỉ cần tạo một tệp có dấu thời gian (tức là file.$time.txt ) trong cùng thư mục nơi tập lệnh được lưu trữ.

time=`date +%Y-%m-%d.%H:%M:%S`
touch file.$time.txt

Lưu tệp và làm cho tập lệnh có thể thực thi được như được hiển thị.

$ chmod +x ~/bin/pav.sh

Để khởi chạy trình kích hoạt, hãy chạy lệnh sau.

$ watchman -- trigger ~/bin 'test-trigger' -- ~/bin/pav.sh
Watchman:Công cụ giám sát thay đổi thư mục và tệp hiệu quả Tạo Trình kích hoạt trên Thư mục

Khi bạn thực thi watchman để theo dõi một thư mục, thư mục đó đã được thêm vào danh sách theo dõi và để xem nó, hãy chạy lệnh sau.

$ watchman watch-list 
Watchman:Công cụ giám sát thay đổi thư mục và tệp hiệu quả Xem danh sách xem

Để xem danh sách kích hoạt cho root , hãy chạy lệnh sau (thay thế ~/bin với root tên).

$ watchman trigger-list ~/bin
Watchman:Công cụ giám sát thay đổi thư mục và tệp hiệu quả Hiển thị danh sách kích hoạt cho root

Dựa vào cấu hình trên, mỗi lần ~/bin thay đổi thư mục, một tập tin như file.2019-03-13.23:14:17.txt được tạo bên trong nó và bạn có thể xem chúng bằng lệnh ls.

$ ls
Watchman:Công cụ giám sát thay đổi thư mục và tệp hiệu quả Kiểm tra cấu hình Watchman

Gỡ cài đặt dịch vụ Watchman trong Linux

Nếu bạn muốn gỡ cài đặt watchman , di chuyển vào thư mục nguồn và chạy các lệnh sau:

$ sudo make uninstall
$ cd '/usr/local/bin' && rm -f watchman 
$ cd '/usr/local/share/doc/watchman-4.9.0 ' && rm -f README.markdown 

Để biết thêm thông tin, hãy truy cập kho lưu trữ Watchman Github:https://github.com/facebook/watchman.

Bạn cũng có thể muốn đọc những bài viết liên quan sau đây.

  1. Swatchdog – Trình theo dõi tệp nhật ký đơn giản trong thời gian thực trong Linux
  2. 4 cách để xem hoặc giám sát tệp nhật ký trong thời gian thực
  3. fswatch – Theo dõi các thay đổi của tệp và thư mục trong Linux
  4. Pyintify – Theo dõi các thay đổi của hệ thống tệp trong thời gian thực trong Linux
  5. Inav – Xem nhật ký Apache trong thời gian thực trong Linux

Người canh gác là một dịch vụ xem tệp nguồn mở để xem các tệp và bản ghi hoặc kích hoạt các hành động khi chúng thay đổi. Hãy sử dụng biểu mẫu phản hồi bên dưới để đặt câu hỏi hoặc chia sẻ suy nghĩ của bạn với chúng tôi.