วิธีส่งการแจ้งเตือนเฉพาะในกรณีที่งานพิมพ์ไม่ว่างเปล่า


12

เรากำลังใช้ rundeck เพื่อสแกน logfiles สำหรับบริการและดำเนินการตามสิ่งที่พบที่นั่น โดยทั่วไปสำหรับการค้นพบแต่ละรายการซึ่งไม่มีเร็กคอร์ดที่เก็บ git จะถูกเตรียมใช้งานและมีการเรียกจุดสิ้นสุดที่เหลืออยู่สองสามจุด แต่นั่นไม่ใช่ประเด็น

เรากำลังตั้งค่างานให้ทำงานตามกำหนดเวลาพูดทุกสองสามชั่วโมงและส่งการแจ้งเตือนเมื่อเกิดความล้มเหลวและนอกจากนี้เพื่อส่งการแจ้งเตือนเกี่ยวกับความสำเร็จก็ต่อเมื่อมีการดำเนินการอย่างน้อยหนึ่งครั้งเท่านั้น (เช่นเชลล์สคริปต์ในงานที่ป้อน ลูปอย่างน้อยหนึ่งครั้ง) สคริปต์ถูกเขียนเพื่อให้ปล่อยเอาต์พุตบน stdout เฉพาะเมื่อพบไอเท็มที่ต้องดำเนินการ

มีวิธีในการตรวจสอบเพื่อเรียกการแจ้งเตือนด้วยข้อกำหนดนี้หรือไม่? หรือวิธีเขียนสคริปต์โดยไม่ต้องเขียนปลั๊กอินตั้งแต่ต้น?

วิธีแก้ปัญหาหนึ่งที่เป็นไปได้คือการปิดทริกเกอร์การแจ้งเตือนความล้มเหลวและทำให้สคริปต์ส่งคืนค่าที่ไม่ใช่ศูนย์ในกรณีที่ไม่มีรายการใดดำเนินการ แต่ฉันไม่สะดวกในการทำเช่นนั้น


เอาท์พุทว่างเปล่าจริง ๆ หรืออาจมีบางสาย blanck หรือ carriage return?
Tensibai

afaics มันว่างเปล่าจากมุมมองทุบตี; มีสเต็ปเชลล์เดี่ยวกับสคริปต์ของฉันไม่แน่ใจว่าฉัน rundeck จะตกแต่งด้วยเอาท์พุตประมาณ
ไหน

การส่งการแจ้งเตือนจากสคริปต์จะเป็นตัวเลือกหรือไม่ ดังนั้นการแจ้งเตือนซ้ำซ้อนเมื่อเกิดความล้มเหลวและสคริปต์ทำการแจ้งเตือน "ฉันทำอะไร" ของตัวเอง?
Tensibai

นั่นเป็นความคิดที่ดีจริง ๆ !
ᴳᵁᴵᴰᴼ

คำตอบ:


7

วิธีที่ฉันคิดได้คือ:

การเขียนปลั๊กอินของคุณเองจากหน้าตัวอย่างปลั๊กอินการแจ้งเตือนการปรับตัวอย่างโค้ดการแจ้งเตือนอีเมลอาจเป็นวิธี

ปิดใช้งานการแจ้งเตือนความสำเร็จในการตรวจสอบและจัดการส่วนการแจ้งเตือนความสำเร็จในสคริปต์ของคุณเอง วิธีนี้เป็นความรับผิดชอบของสคริปต์ในการเตือนว่าทำบางสิ่งในสภาวะปกติและยังคงรับผิดชอบในการเตือนสคริปต์ล้มเหลว


1
ขอบคุณ; เมื่อคุณได้รับคุณสมบัติที่ห่อหุ้มโดยเครื่องมือที่คุณมีอยู่ข้างหน้าบางครั้งก็เป็นเรื่องธรรมดาที่จะลืมว่าคุณสามารถใช้งานได้โดยตรง ...
ᴳᵁᴵᴰᴼ

1

ฉันสามารถแก้ไขปัญหานี้ได้ด้วยวิธีหลบหลีกโดยเปลี่ยนคำสั่งเป็น:

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

การทำเช่นนี้จะทำให้ท่อส่งออกผ่านgrepและล้มเหลวหากมีเอาต์พุตใด ๆ เลย แต่grepยังคงส่งผ่านได้ดังนั้นคุณยังจะได้เห็นเอาต์พุตใน Rundeck เมื่อเกิดความล้มเหลว

ข้อเสียเปรียบอย่างหนึ่งคือฉันเชื่อว่าคุณสูญเสียบรรทัดว่างเปล่า แต่เราจะไม่แสดงผลลัพธ์ใด ๆ ดังนั้นจึงไม่ใช่เรื่องใหญ่สำหรับเราและมันจะส่งสัญญาณให้เราจนกว่าเราจะสามารถอัปเดตแอปเพื่อยุติด้วยรหัสทางออกที่เหมาะสม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.