Sử dụng Incron để lên lịch tác vụ thay đổi hệ thống tệp

Ngày Đăng : Saturday, October 05, 2019 - Tác giả: guICE.org

Khi chạy một máy chủ, đó là một yêu cầu khá phổ biến để tự động hóa các tác vụ. Các bản phân phối Linux cung cấp công cụ cron, cho phép bạn lên lịch các tác vụ vào những thời điểm cụ thể. Một nhược điểm của cron là bạn có thể muốn các tác vụ được thực hiện yêu cầu kích hoạt ngoài việc chỉ đạt được thời gian đặt trước. May mắn thay, có một số công cụ liên quan để lên lịch các tác vụ, một trong số đó là incron. Incron sử dụng hệ thống inotify để kiểm tra sửa đổi tệp và thư mục, sau đó có thể kích hoạt các tác vụ dựa trên một bộ quy tắc được xác định cho nó.

Sử dụng Incron để lên lịch tác vụ thay đổi hệ thống tệp

Khi chạy một máy chủ, đó là một yêu cầu khá phổ biến để tự động hóa các tác vụ. Các bản phân phối Linux cung cấp công cụ cron, cho phép bạn lên lịch các tác vụ vào các thời điểm cụ thể. Một nhược điểm của cron là bạn có thể muốn các tác vụ được thực hiện yêu cầu kích hoạt ngoài việc chỉ đạt được thời gian đặt trước. May mắn thay, có một số công cụ liên quan để lên lịch các tác vụ, một trong số đó là incron. Incron sử dụng hệ thống inotify để kiểm tra sửa đổi tệp và thư mục, sau đó có thể kích hoạt các tác vụ dựa trên một bộ quy tắc được xác định cho nó.

Cài đặt Incron

Bản thân Incron nằm trong kho lưu trữ mặc định cho nhiều bản phân phối Linux và việc cài đặt hệ thống Debian và Ubuntu cũng đơn giản như:

sudo apt-get cập nhật

sudo apt-get cài đặt incron

Đối với các bản phân phối CentOS và Red Hat Linux, nó có thể được cài đặt với:

sudo yum cài đặt incron

Như với cron, mỗi người dùng có thể tạo tệp bảng incron của riêng họ mà họ có thể định cấu hình để thực hiện các tác vụ cho họ. Bạn có thể giới hạn người dùng nào có thể sử dụng incron với hệ thống cho phép / từ chối. Nếu tệp * / etc / incron.allow * tồn tại, thì chỉ các người dùng được liệt kê trong tệp đó mới có tệp incron được xử lý. Tương tự, nếu tệp * / etc / incron.deny * tồn tại, tất cả người dùng sẽ xử lý tệp incron trừ khi người dùng được liệt kê trong tệp.

Thiết lập Incron

Để thiết lập tệp bảng incron, người dùng có thể sử dụng lệnh incrontab, tương tự như sử dụng lệnh crontab thông thường. Ví dụ, chỉnh sửa tệp bảng incron có thể được thực hiện bằng lệnh sau:

incrontab -e

Tệp này bao gồm các dòng theo định dạng sau, đặt các quy tắc mà incron nên tuân theo:

<đường dẫn> <mặt nạ> <lệnh>

Dòng bắt đầu với một đường dẫn. Đây phải là đường dẫn đầy đủ của một tập tin hoặc thư mục sẽ được theo dõi. Nếu bạn đặt một thư mục để theo dõi, thì chỉ các tệp trong chính thư mục đó được theo dõi, không phải các tệp trong thư mục con. Do đó, bạn sẽ cần đặt các quy tắc bổ sung cho bất kỳ thư mục con nào cũng cần theo dõi. Dòng kết thúc bằng lệnh nên được chạy khi incron phát hiện sự thay đổi trong tệp hoặc thư mục được giám sát mà nó cần đáp ứng. Giữa các điều này, chúng ta có mặt nạ xác định loại sự kiện nào sẽ xảy ra để incron chạy lệnh.

Dưới đây là danh sách các mặt nạ hợp lệ bạn có thể sử dụng:

Tệp IN_ACCESS đã được truy cập (đọc) (+)

IN_ATTRIB Siêu dữ liệu đã thay đổi (quyền, dấu thời gian, thuộc tính mở rộng, v.v.) (+)

IN_CLOSE_WRITE Tệp được mở để ghi đã bị đóng (+)

IN_CLOSE_NOWRITE Tệp được mở để chỉ đọc đã bị đóng (+)

IN_CREATE Một tệp hoặc thư mục được tạo trong thư mục đã xem (+)

IN_DELETE Một tệp hoặc thư mục đã bị xóa khỏi thư mục đã xem (+)

IN_DELETE_SELF Tệp hoặc thư mục đã xem đã bị xóa

IN_MODIFY Tệp đã được sửa đổi (+)

IN_MOVE_SELF Tệp hoặc thư mục đã xem đã được di chuyển

IN_MOVED_FROM Tệp được chuyển ra khỏi thư mục đã xem (+)

IN_MOVED_TO Tệp được chuyển vào thư mục đã xem (+)

Tệp IN_OPEN đã được mở (+)

IN_ALL_EVENT Phù hợp với tất cả các mục trên

Tùy chọn mặt nạ được đánh dấu bằng ký hiệu dấu cộng (+) là hợp lệ cho cả thư mục đang xem và các tệp và thư mục chứa. Incron cũng có khả năng truyền một số thông tin cho lệnh được gọi để các lệnh hành động theo nó. Các mã ký hiệu sau có thể được đặt trong đường dẫn lệnh làm đối số:

Ký hiệu đô la $$

$ @ đã xem đường dẫn hệ thống tập tin

$ # tên tệp liên quan đến sự kiện

Cờ sự kiện $% (bằng văn bản)

$ & cờ sự kiện (bằng số)

Các mã ký hiệu này có nghĩa là bạn có thể viết các tập lệnh có thể phản hồi linh hoạt với các sự kiện kích hoạt incron.

Với việc sử dụng incron hiện được bảo hiểm, hãy xem xét một số ví dụ về cách bạn có thể sử dụng incron trong tình huống máy chủ:

/etc/php/7.0/apache2/php.ini IN_MODIFY / usr / sbin / dịch vụ apache2 khởi động lại

Ví dụ này được thiết kế cho các hệ thống Debian hoặc Ubuntu và sẽ hướng dẫn incron gọi máy chủ web Apache để khởi động lại khi thực hiện sửa đổi tệp cấu hình PHP.

/ var / chạy IN_MODIFY / home / myuser / myscript $ # $%

Ở đây chúng tôi có một ví dụ khác theo dõi thư mục /var/run để biết các thay đổi có thể xảy ra nếu quá trình khởi động lại. Sau đó, nó sẽ gọi tập lệnh trong /home/ myuser / myscript , chuyển cho nó các đối số của tên tệp đã thay đổi và cờ đã kích hoạt nó. Điều này có thể được sử dụng để tạo tập lệnh giám sát chung để cảnh báo bạn nếu có thay đổi xảy ra với các quy trình đang chạy của bạn.

Incron có thể cung cấp rất nhiều tính linh hoạt để lên lịch các tác vụ có thể khó đạt được bằng cách sử dụng cron dựa trên thời gian truyền thống hoặc các công cụ tương tự. Vì vậy, đó là điều cần lưu ý khi tự động hóa và lên lịch các tác vụ.

Cảm ơn bạn đã đánh giá
0 Sao 0 Đánh giá
icon to top