Thực sự có một cách dễ dàng hơn nhiều để làm điều này.
Tải xuống / Tài liệu: autodrgrep.kl.sh
Chỉ huy:
./autodrgrep.kl.sh notchef /tmp/client.log '2016-05-08_08:00:00,2016-05-08_23:00:00' 'INFO' 'a2ensite' 5 10 -show
Giải trình:
autodrgrep.kl.sh là tên công cụ.
notchef là một tùy chọn được truyền cho công cụ để cho nó biết phải làm gì. Trong trường hợp cụ thể này, nó đang báo cho công cụ biết loại tệp nhật ký /tmp/client.log là gì.
/tmp/client.log dĩ nhiên là tệp nhật ký.
2016-05-08_19: 12: 00,2016-05-08_21: 13: 00 là phạm vi ngày từ trong nhật ký mà bạn muốn quét
"INFO" là một trong những chuỗi nằm trong dòng nhật ký mà bạn quan tâm.
"a2ensite" là một chuỗi khác trên cùng một dòng mà bạn mong đợi để tìm chuỗi "INFO" trên. Chỉ định hai chuỗi này (INFO và a2ensite) cô lập và xử lý các dòng bạn muốn nhanh hơn rất nhiều, đặc biệt nếu bạn đang xử lý một tệp nhật ký lớn.
5 chỉ định Cảnh báo. Bằng cách chỉ định 5, bạn đang bảo chương trình cảnh báo là CẢNH BÁO nếu có ít nhất 5 lần xuất hiện của chuỗi tìm kiếm mà bạn đã chỉ định
10 chỉ định quan trọng. Bằng cách chỉ định 10, bạn đang nói với chương trình cảnh báo là TIÊU CHUẨN nếu có ít nhất 10 lần xuất hiện của chuỗi tìm kiếm mà bạn đã chỉ định.
-hiển thị chỉ định loại phản hồi bạn sẽ nhận được. Bằng cách chỉ định -shown, bạn đang nói nếu tìm thấy bất cứ thứ gì phù hợp với các mẫu được chỉ định, xuất ra màn hình.
Chạy mẫu:
# ./autodrgrep.kl.sh notchef /tmp/client.log '2016-05-08_19:12:00,2016-05-08_21:13:00' 'INFO' 'a2ensite' 5 10 -show
[2016-05-08 19:12:58-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90)
[2016-05-08 19:12:58-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24)
[2016-05-08 19:12:58-07:00] INFO: execute[a2ensite default] ran successfully
[2016-05-08 19:13:09-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXrayServer::install line 24)
[2016-05-08 19:13:12-07:00] INFO: execute[a2ensite default] sending restart action to service[apache2] (delayed)
[2016-05-08 19:42:57-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90)
[2016-05-08 19:42:57-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24)
[2016-05-08 19:42:57-07:00] INFO: execute[a2ensite default] ran successfully
[2016-05-08 19:43:08-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXrayServer::install line 24)
[2016-05-08 19:43:11-07:00] INFO: execute[a2ensite default] sending restart action to service[apache2] (delayed)
[2016-05-08 20:12:58-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90)
[2016-05-08 20:12:58-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24)
[2016-05-08 20:12:58-07:00] INFO: execute[a2ensite default] ran successfully
[2016-05-08 20:13:10-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXrayServer::install line 24)
[2016-05-08 20:13:12-07:00] INFO: execute[a2ensite default] sending restart action to service[apache2] (delayed)
[2016-05-08 20:42:59-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90)
[2016-05-08 20:42:59-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24)
[2016-05-08 20:42:59-07:00] INFO: execute[a2ensite default] ran successfully
[2016-05-08 20:43:09-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXrayServer::install line 24)
[2016-05-08 20:43:12-07:00] INFO: execute[a2ensite default] sending restart action to service[apache2] (delayed)
[2016-05-08 21:12:59-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90)
[2016-05-08 21:12:59-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24)
[2016-05-08 21:12:59-07:00] INFO: execute[a2ensite default] ran successfully
23
2---78720---23---ATWFILF---(2016-05-08)-(19:12)---(2016-05-08)-(21:13) SEAGM
Điều gì xảy ra nếu người dùng chỉ định phạm vi ngày hoặc khung thời gian không có trong nhật ký?
Mỗi lần chạy lệnh trên sẽ luôn có một dòng (dòng cuối cùng của đầu ra) có nội dung "ATWFILF" hoặc "ETWNFILF".
ATWFILF có nghĩa là phạm vi ngày hoặc khung thời gian thực tế bạn yêu cầu tìm kiếm đã được tìm thấy trong nhật ký. Vì vậy, điều này là rất tốt.
ETWNFILF có nghĩa là phạm vi ngày hoặc khung thời gian thực tế bạn yêu cầu tìm kiếm KHÔNG được tìm thấy trong nhật ký. Trong trường hợp này, thời gian gần nhất với thời gian bạn chỉ định sẽ được phát hiện và sử dụng thay thế.
^[^ ]+
phần ..