কেবলমাত্র কাজের আউটপুট খালি না থাকার ক্ষেত্রে কীভাবে বিজ্ঞপ্তি প্রেরণ করা যায়


12

আমরা কোনও পরিষেবার জন্য লগফিলগুলি স্ক্যান করতে rundeck ব্যবহার করছি এবং সেখানে যা পাওয়া যায় তার উপর নির্ভর করে ব্যবস্থা গ্রহণ করব। মূলত, পাওয়া প্রতিটি আইটেমের জন্য, যার জন্য একটি রেকর্ড বিদ্যমান নেই, একটি গিট সংগ্রহস্থল শুরু করা হয় এবং কয়েকটি বিশ্রামের শেষ পয়েন্ট বলা হয়, তবে এটি বিন্দু নয়।

আমরা নির্ধারিত হিসাবে চালানোর জন্য কাজটি স্থাপন করছি, প্রতি কয়েক ঘন্টা বলি, এবং ব্যর্থতার বিষয়ে বিজ্ঞপ্তি প্রেরণ করি এবং অতিরিক্তভাবে কমপক্ষে একটি পদক্ষেপ নেওয়া হলেই সাফল্যের উপর বিজ্ঞপ্তি প্রেরণ করা হয় (যেমন, কার্যটিতে শেল স্ক্রিপ্ট প্রবেশ করা হয়) লুপ অন্তত একবার)। স্ক্রিপ্টটি এমনভাবে লিখিত হয়েছে যাতে যখন স্ট্যান্ডআউট-এ কাজ করা আইটেমগুলি পাওয়া যায় তখন এটি কেবল আউটপুট নির্গত করে।

এই প্রয়োজনীয়তা সহ বিজ্ঞপ্তি ট্রিগার করার জন্য কি কোনও উপায় আছে? বা স্ক্র্যাচ থেকে প্লাগইন না লিখে স্ক্রিপ্ট করার কোনও উপায়?

একটি সম্ভাব্য কাজ হ'ল ব্যর্থতা বিজ্ঞপ্তি ট্রিগার বন্ধ করে দেওয়া, এবং কোনও আইটেম কার্যকর না করার ক্ষেত্রে স্ক্রিপ্টটিকে শূন্য-শূন্যস্থান হিসাবে ফিরিয়ে দেওয়া, তবে আমি এটি করতে স্বাচ্ছন্দ্যবোধ করি না।


আউটপুটটি কি সত্যিই খালি, বা এটিতে কিছু ফাঁকা লাইন বা গাড়ীর ফেরত পাওয়া যাবে?
তেরশিবাই

আফসিকগুলি এটি খালি, ব্যাশের দৃষ্টিকোণ থেকে; আমার স্ক্রিপ্টের সাথে একটি একক শেল স্টেপ রয়েছে, নিশ্চিত না যে আমি রুণ্ডেক চারপাশে আউটপুট দিয়ে সাজাইয়া
দেব

স্ক্রিপ্ট থেকে বিজ্ঞপ্তি পাঠানো নিজেই একটি বিকল্প হতে পারে? এবং তাই rundeck শুধুমাত্র ব্যর্থতার উপর বিজ্ঞপ্তি দেয় এবং স্ক্রিপ্টটির নিজস্ব "আমি কিছু করেছি" বিজ্ঞপ্তিটি দেয়?
তেনসিবাই

এটি আসলে একটি ভাল ধারণা!
5

উত্তর:


7

আমি যেভাবে ভাবতে পারি তা হ'ল:

আপনার নিজের প্লাগইন লিখুন, বিজ্ঞপ্তি প্লাগইন উদাহরণ পৃষ্ঠা থেকে উদাহরণ মেল বিজ্ঞপ্তি কোড মানিয়ে নেওয়ার উপায় হতে পারে।

রুন্ডেকে সাফল্য বিজ্ঞপ্তি অক্ষম করা, এবং আপনার স্ক্রিপ্টে সাফল্য বিজ্ঞপ্তি অংশ হ্যান্ডেল। এইভাবে সতর্ক করার জন্য আপনার স্ক্রিপ্টের দায়িত্ব এটি স্বাভাবিক অবস্থায় কিছু করেছে এবং স্ক্রিপ্টটি ব্যর্থ হওয়ার বিষয়ে সতর্ক করার দায়বদ্ধ দায়িত্ব এখনও রয়েছে।



1

কমান্ডটি পরিবর্তিত করে আমি এই সমস্যাটি কিছুটা অদ্ভুতভাবে পেতে পেরেছিলাম:

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

এই আউটপুটটি পাইপ করে grepএবং যদি কোনও আউটপুট আদৌ হয় তবে ব্যর্থ হয়, তবে grepএখনও এর মধ্য দিয়ে যায় তাই আপনি ব্যর্থতার পরেও রুন্ডেকে আউটপুট দেখতে পান।

একটি অসুবিধা হ'ল আমি বিশ্বাস করি যে আপনি কোনও ফাঁকা লাইন হারাচ্ছেন তবে আমরা আমাদের পক্ষে এত বড় কোনও চুক্তি করে না এবং এটি সঠিকভাবে প্রস্থান কোডের সাথে সমাপ্তির জন্য অ্যাপটি আপডেট না করা অবধি আমাদের উপর চাপিয়ে দেবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.