Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách xử lý các tệp mới để xử lý trong cron job

Một cách tốt để xử lý / xử lý các tệp được tạo vào các thời điểm ngẫu nhiên là sử dụng incron chứ không phải là cron . (Lưu ý:vì incron sử dụng inotify của hạt nhân Linux syscalls, giải pháp này chỉ hoạt động với Linux.)

Trong khi cron chạy công việc dựa trên ngày và giờ, incron chạy một công việc dựa trên những thay đổi trong một thư mục được giám sát. Ví dụ:bạn có thể định cấu hình incron để chạy ajob mỗi khi tệp mới được tạo hoặc sửa đổi.

Trên Ubuntu, gói được gọi là incron . Tôi không chắc về RedHat, nhưng tôi tin rằng đây là gói phù hợp: http://rpmfind.net//linux/RPM/dag/redhat/el5/i386/incron-0.5.9-1.el5.rf. i386.html .

Sau khi bạn cài đặt gói incron, hãy đọc

man 5 incrontab 

để biết thông tin về cách thiết lập tệp cấu hình incrontab. incron_config của bạn tệp có thể trông giống như sau:

/var/ss01/ IN_CLOSE_WRITE /path/to/processing/script.py $#
/var/ss02/ IN_CLOSE_WRITE /path/to/processing/script.py $#
/var/ss03/ IN_CLOSE_WRITE /path/to/processing/script.py $#
/var/ss04/ IN_CLOSE_WRITE /path/to/processing/script.py $#

Sau đó, để đăng ký cấu hình này với daemon incrond, bạn sẽ chạy

incrontab /path/to/incron_config

Thats tất cả để có nó. Bây giờ bất cứ khi nào tệp được tạo trong / var / ss01, / var / ss02, / var / ss03 hoặc / var / ss04, lệnh

/path/to/processing/script.py $#

được chạy, với $ # được thay thế bằng tên của tệp mới tạo.

Điều này sẽ loại bỏ nhu cầu lưu trữ / so sánh các hàm băm và các tệp sẽ chỉ được xử lý một lần - ngay sau khi chúng được tạo.

Chỉ cần đảm bảo rằng tập lệnh xử lý của bạn không ghi vào cấp cao nhất của các thư mục được giám sát. Nếu có, thì incrond sẽ thông báo tệp mới được tạo và khởi chạy lại script.py, đưa bạn vào một vòng lặp vô hạn.

incrond giám sát các thư mục riêng lẻ, và không giám sát đệ quy các thư mục con. Vì vậy, bạn có thể hướng tshark ghi vào / var / ss01 / tobeprocessed, sử dụng incron để giám sát / var / ss01 / tobeprocessed và để script.py của bạn ghi vào / var / ss01 chẳng hạn.

Tái bút. Ngoài ra còn có một giao diện python để inotify, được gọi là pyinotify . Không giống như incron, pyinotify có thể theo dõi đệ quy các thư mục con. Tuy nhiên, trong trường hợp của bạn, tôi không nghĩ rằng tính năng giám sát đệ quy là hữu ích hoặc cần thiết.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LỖI 2006 (HY000) ở dòng 1:Máy chủ MySQL đã biến mất

  2. Tải lên nhiều hình ảnh sai số lượng khi tải lên tệp

  3. Muốn tách chuỗi trong mysql bằng cách sử dụng SUBSTRING_INDEX

  4. Sử dụng Oracle JDeveloper với Dịch vụ Cơ sở dữ liệu MySQL trên Nền tảng Đám mây Oracle, Phần 3

  5. Giới thiệu về SQL Joins