Cách gửi thông báo chỉ trong trường hợp đầu ra công việc không trống


11

Chúng tôi đang sử dụng rundeck để quét logfiles cho một dịch vụ và thực hiện hành động tùy thuộc vào những gì được tìm thấy ở đó. Về cơ bản, đối với mỗi mục được tìm thấy, trong đó bản ghi không tồn tại, kho git được khởi tạo và một vài điểm cuối còn lại được gọi, nhưng đó không phải là điểm.

Chúng tôi đang thiết lập công việc để chạy theo lịch trình, cứ sau vài giờ và gửi thông báo về sự cố, và ngoài ra chỉ gửi thông báo về thành công khi có ít nhất một hành động được thực hiện (ví dụ: tập lệnh shell trong tác vụ được nhập vòng lặp ít nhất một lần). Kịch bản được viết để nó chỉ phát ra đầu ra trên thiết bị xuất chuẩn khi tìm thấy các mục cần xử lý.

Có cách nào trong rundeck để kích hoạt thông báo với yêu cầu này không? Hoặc một cách để kịch bản nó mà không cần viết một plugin từ đầu?

Một cách giải quyết khác có thể là tắt trình kích hoạt thông báo lỗi và làm cho tập lệnh trả về giá trị khác không trong trường hợp không có mục nào được xử lý, nhưng tôi không thoải mái khi làm điều đó.


Là đầu ra thực sự trống rỗng, hoặc nó có thể có một số dòng blanck hoặc trở lại vận chuyển?
Tensibai

afaics nó trống rỗng, từ một quan điểm bash; có một bước shell duy nhất với kịch bản của tôi, không chắc chắn tôi sẽ trang trí nó với đầu ra xung quanh
ᴳᵁᴵᴰᴼ

Gửi thông báo từ chính kịch bản có phải là một lựa chọn không? Và vì vậy, rundeck chỉ thông báo về sự thất bại và kịch bản tự thông báo "Tôi đã làm gì đó"?
Tensibai

Đó thực sự là một ý tưởng tốt!
ᴳᵁᴵᴰᴼ

Câu trả lời:


6

Cách tôi có thể nghĩ là:

Viết plugin của riêng bạn, từ trang ví dụ về plugin thông báo , điều chỉnh mã thông báo thư mẫu có thể là một cách.

Vô hiệu hóa thông báo thành công trong rundeck và xử lý phần thông báo thành công trong chính tập lệnh của bạn. Bằng cách này, đó là trách nhiệm về kịch bản của bạn để cảnh báo nó đã làm điều gì đó ở trạng thái bình thường và nó vẫn còn trách nhiệm để cảnh báo bạn rằng kịch bản thất bại.


1
Cảm ơn; khi bạn nhận được một tính năng được bao bọc bởi những công cụ mà bạn có ở phía trước, nó là như vậy đôi khi thường quên bạn có thể đi cho nó trực tiếp ....
ᴳᵁᴵᴰᴼ

1

Tôi đã có thể khắc phục vấn đề này một cách khéo léo bằng cách thay đổi lệnh thành:

/bin/bash -c "your-command-here | { ! grep '^'; }"

Điều này dẫn đầu ra đi qua grepvà thất bại nếu có bất kỳ đầu ra nào, nhưng grepvẫn vượt qua nó để bạn vẫn có thể thấy đầu ra trong Rundeck khi thất bại.

Một nhược điểm là tôi tin rằng bạn mất bất kỳ dòng trống nào nhưng chúng tôi không tạo ra bất kỳ vấn đề gì lớn cho chúng tôi và điều đó sẽ khiến chúng tôi thất vọng cho đến khi chúng tôi có thể cập nhật ứng dụng để chấm dứt với một mã thoát thích hợp.

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.