লিনাক্স কমান্ডের জন্য এলোমেলো বিলম্ব যোগ করা


13

আমি আমাদের সার্ভারগুলিতে সমান্তরাল আদেশগুলি সম্পাদন করতে ফানক ব্যবহার করছি ।

অন্য দিন, যখন আমাদের পরিষেবাগুলি পুনরায় আরম্ভ করার puppetমাধ্যমে funcআমাদের সমস্ত সেভারগুলি puppetmasterএকই সময়ে হিট করে দেয় তখন আমাদের একটি সমস্যা হয়েছিল ।

আমার প্রশ্ন: পৃথক সার্ভারে মৃত্যুদণ্ড কার্যকর হওয়ার আগে একটি বিলম্ব সংযোজন করার সময় আমি কীভাবে একই সার্ভারের সেটগুলিতে একই সঠিক আদেশটি কার্যকর করতে পারি?

উদাহরণ: random_delay && service puppet restart

আমি random_delayকমান্ডের অংশে আগ্রহী ।

উত্তর:


25

sleep $((RANDOM % MAXWAIT)) যেখানে MAXWAIT সেকেন্ডে সর্বাধিক কাঙ্ক্ষিত বিলম্ব।


"1" এ আটকে যাবেন বলে মনে হচ্ছে যদি আপনি সেই প্রতিধ্বনিত করেন ... চিন্তাভাবনা?
কোরি এস।

এটিও লক্ষ্য করা গেছে। 1 2 3 4 5 x এর জন্য এটি ব্যবহার করে দেখুন; do RANDOM = $ x; আমি $ = ((random% 10)); প্রতিধ্বনি $ i; ঘুম $ i; স্পষ্টতই, এস 19 এন এর উত্তরের MAXWAIT আমার উত্তর 10 এর মতোই কার্যকর। এলোমেলো বীজটি পরিবর্তন করুন এবং পুতুল কোড যুক্ত করুন যা আপনি অবশ্যই চান।
dtbnguyen

2
@CoreyS। ND র্যান্ডম সর্বশেষ মানটি বন্ধ করে দিচ্ছে, অতএব লুপিং (আমি 5/6/7, 2/7 এবং 5 এ আটকে গিয়েছি)। sleep $((RANDOM % MAXWAIT))সঠিক উপায়। আমি উত্তরটি এমনভাবে সম্পাদনা করব।
জেফ ফেরল্যান্ড

প্রো পপেটে একে স্প্লে বলা হয় । এটি একটি গর্জনকারী পালকে প্রতিরোধ করতে ব্যবহৃত হয় , যেখানে অনেকগুলি মেশিন একই সাথে একই কাজ করে। এগুলি ছাড়াও ক্রোন শিডিউলিং ব্যবহার করে আমার সাফল্য ছিল fqdn_rand
ফ্রান্সোইস বিউসোলিল

এটি ব্যাশ-নির্দিষ্ট এক্সটেনশনের উপর নির্ভর করে বলে মনে হচ্ছে। ইন dash echo sleep $((RANDOM % 900))আয় sleep 0। এর অর্থ #!/bin/shস্ক্রিপ্টগুলিতে বা ক্রন্টবের মতো জায়গায় ব্যবহার করা নিরাপদ নয় । (সমস্যাগুলি মনে হয় এটি dashবুঝতে পারে না $RANDOM)
জার্ট ভ্যান ড্যান বার্গ

1

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

পুতুল অর্কেস্ট্রেশন আসলে একটি কঠিন সমস্যা।
"সেরা অনুশীলন" সমাধানগুলির মধ্যে একটি হ'ল এমক্লিকটিভ ব্যবহার করা যা আপনার পুতুলগুলি মেশিনগুলির ক্লাস্টারে চালিত হওয়ার সময় আপনাকে কনফিগার করার অনুমতি দেয় না, তবে আপনি অন্যান্য অনুরূপ অর্কেস্টেশন সমস্যার জন্যও এটি ব্যবহার করতে পারেন।


0
0 */12 * * * root perl -e 'sleep int(rand(43200))' && service puppet restart

এটি প্রতি 12 ঘন্টা পরে 0 সেকেন্ড এবং 12 ঘন্টা (43200 = 12 x 60 x 60) এর মধ্যে এলোমেলো পরিমাণে ঘুমাবে

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