ক্রোন একই কাজ একই সময়


8

ধরা যাক, একই সাথে চালানোর জন্য আমার বেশ কয়েকটি ক্রোন জব রয়েছে: তারা কি সমান্তরালভাবে বা একের পর এক চালানো হয়?

(আমার কেসটি /etc/cron.d/mycronjobs এর ভিতরে রাখা ক্রোনজবস দিয়ে দেবিয়ান চেপে ধরেছে)।

উত্তর:


7

সম্পূর্ণতার জন্য, উদাহরণস্বরূপ /etc/cron. jobshourly, দৈনিক, সাপ্তাহিকভাবে, প্রচলিত jobs এ চাকরিগুলি ধারাবাহিকভাবে চালিত হয়। রান-পার্টস স্ক্রিপ্টটি এই ডিরেক্টরিতে সমস্ত ফাইলের উপরে লুপ করে।

02 4 * * * root run-parts /etc/cron.daily

/etc/init.d/rc*.dকাজটি যথাযথভাবে চালিত হয় তা নিশ্চিত করার জন্য আপনি নামকরণের কনভেনশনের ( উদাহরণস্বরূপ সংখ্যার সাথে সমান ) সাথে এটি ব্যবহার করতে পারেন।


আমার যদি একই ফাইলের মধ্যে বেশ কয়েকটি ক্রোন জব থাকে, একই সাথে চালানোর জন্য সেট করা হয় তবে?
গ্যাব্রিয়েল

আপনি "একই ফাইলের মধ্যে" বলতে কী বোঝায় তা আমি নিশ্চিত নই। তবে যদি আপনি বোঝাতে চান যে একই সময় নির্দিষ্টকরণের সাথে আপনার বেশ কয়েকটি লাইন রয়েছে (যেমন 0 * * * *আপনি আগে পোস্ট করেছেন) তবে অন্যরা যেমন পোস্ট করেছেন তারা যে ক্রমটি চালাবেন তার কোনও গ্যারান্টি নেই They তারা একটি বহু-কোর সিস্টেমের সাথে সমান্তরালে চলতে পারে, তারা যে ক্রমটি চালাচ্ছে এটি আফ্রিকের পক্ষে প্রতিদিন আলাদা হতে পারে। যে নামকরণ কনভেনশনটি আমি রান-পার্টসের সাথে মিশ্রিত করেছি বা একটি মাস্টার স্ক্রিপ্ট ব্যবহার করে যা প্রকৃত ব্যাকআপ স্ক্রিপ্টগুলিকে কল করে কোনও নির্দিষ্ট ক্রমে স্ক্রিপ্টগুলি সম্পাদন করা হয় তা নিশ্চিত করার একমাত্র উপায়।
ব্রাম

ঠিক আছে, যেহেতু আমার নিশ্চিত হওয়া দরকার যে আমার স্ক্রিপ্টগুলি একের পর এক চলবে, আমি মনে করি ক্রোন জব দ্বারা চালিত "মাস্টার স্ক্রিপ্ট" নেব এবং মূল স্ক্রিপ্টের মধ্যে থেকে কোনও স্ক্রিপ্ট কল করব call
গ্যাব্রিয়েল

5

ক্রোন-এ তালিকাবদ্ধ কার্যগুলি সমান্তরালভাবে চলবে, ঠিক যেমন প্রক্রিয়াগুলি সাধারণত করে। কোনটি প্রথমে শুরু হবে তা নিশ্চিত হওয়ার কোনও উপায় নেই এবং টাস্ক বিটি শুরু হওয়ার আগে টাস্ক এটি সম্পন্ন হয়েছে তা নিশ্চিত করার জন্য ক্রোন কোনও উপায় নেই।


1
টাস্ক বি একই লাইনে তালিকাভুক্ত করে এবং সেমিকোলন দিয়ে তাদের পৃথক করে টাস্ক বি শুরু হওয়ার আগে আপনি নিশ্চিত করতে পারেন যে টাস্ক এ এর ​​সম্পূর্ণ হয়েছে।
নিকোলাস

এর অর্থ এই নয় যে টাস্ক এ সফলভাবে শেষ হয়েছে। সম্ভবত আপনি একটি && ব্যবহার করতে পারেন, তবে এর মতো কোনও কিছুই বলা যেতে পারে এমন কোনও স্ক্রিপ্ট দ্বারা চালিত করা উচিত।
সির্চ

আপনি যে কোনও অপারেশন ব্যাশ শেল সমর্থন করে ব্যবহার করতে পারেন। &&, ||, বা ব্যবহার করে; ক্রোন ইন আমার অভিজ্ঞতা একটি সাধারণ অনুশীলন।
নিকোলাস

2

ক্রোন একটি ডেমন (পরিষেবা) যা অবিচ্ছিন্নভাবে চালিত হয়; তবে এটি মিনিটে একবার ক্রোনট্যাব পড়ে reads

সঠিক ক্রম যেখানে কাজগুলি কার্যকর করা হবে তা আপনার সিস্টেমের ক্রন্ড বাস্তবায়নের উপর নির্ভর করবে।

কিছু বিতরণ /etc/cron.d/ এর ভিতরে রাখা কিছু আলগা ফাইলগুলি তাদের ক্রোন টাইমার সেটিংসের জন্য স্ক্যান করা হয়, যেহেতু এই ফাইলগুলি সাধারণ ক্রন্টব (5) সিনট্যাক্স অনুসরণ করে।

স্বতন্ত্র কাজগুলি কী আদেশে কার্যকর করা হয় তা নির্ভর করে আপনি তাদের জন্য নির্ধারিত তফসিলের উপর নির্ভর করে।


তফসিলটি যদি এইভাবে সেট করা থাকে তবে কী হবে: ---- 0 * * * * রুট sh / var / opt / ব্যাকআপ_স্ক্রিপ্টস / ব্যাকআপ 1 - 0 * * * * রুট sh / var / opt / ব্যাকআপ_স্ক্রিপ্ট / ব্যাকআপ 2 ---- তারা কি ধারাবাহিকভাবে চালান, মানে ব্যাকআপ 1 এবং, শেষ হয়ে গেলে, ব্যাকআপ 2?
গ্যাব্রিল

সঠিক ক্রম যেখানে কাজগুলি কার্যকর করা হবে তা আপনার সিস্টেমের ক্রন্ড বাস্তবায়নের উপর নির্ভর করবে। ম্যান ক্রোন বিশদ জন্য।
অ্যাডাপ্ট্রি

ম্যান ক্রোন সে সম্পর্কে কিছুই জানায় না (কমপক্ষে দেবিয়ান ভাষায়)।
গ্যাব্রিয়েল

2

তারা সমান্তরালে চলবে। প্রক্রিয়াগুলি ক্রমান্বয়ে চালাতে আপনি নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করতে পারেন।

# Use a semicolon to run command2 after command1 has completed
02 4 * * * /path/to/command1 ; /path/to/command2

# Use two ampersands to run command2 after command1 has completed successfully.
02 4 * * * /path/to/command1 && /path/to/command2

# Use two vertical rules to run command2 after command1 has completed unsuccessfully.
02 4 * * * /path/to/command1 || /path/to/command2
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.