তাৎক্ষণিকভাবে ক্রন এক্সপ্রেশন তৈরি করুন
প্রতিটি ফিল্ড সেট করুন — মিনিট, ঘণ্টা, মাসের দিন, মাস এবং সপ্তাহের দিন — এবং একটি ব্যবহারযোগ্য ক্রনট্যাব লাইনের সাথে সহজ ভাষায় ব্যাখ্যাও পেয়ে যান।
সবকিছু সরাসরি আপনার ব্রাউজারে চলে — কোনো তথ্য কোথাও পাঠানো হয় না এবং কোনো শিডিউল সংরক্ষণ করা হয় না।
ক্রন এক্সপ্রেশন কী?
ক্রন এক্সপ্রেশন হলো পাঁচটি ফিল্ড নিয়ে গঠিত একটি প্যাটার্ন, যা ইউনিক্স-সদৃশ সিস্টেমে নির্দিষ্ট সময়, তারিখ বা ব্যবধানে স্বয়ংক্রিয়ভাবে কমান্ড চালানোর সময়সূচি নির্ধারণ করতে ব্যবহৃত হয়।
প্রতিটি ফিল্ড সময়ের একটি ভিন্ন একক নিয়ন্ত্রণ করে — মিনিট, ঘণ্টা, মাসের দিন, মাস এবং সপ্তাহের দিন — এবং একসাথে এগুলো ঠিক কখন একটি কাজ চালানো হবে তা নির্ধারণ করে।
ক্রন ফিল্ড সিনট্যাক্স
| মিনিট | 0–59 |
| ঘণ্টা | 0–23 |
| মাসের দিন | 1–31 |
| মাস | 1–12 |
| সপ্তাহের দিন | 0–6 (0 = রবিবার) |
বিশেষ চিহ্ন
| * | যেকোনো মান — সেই ফিল্ডের জন্য সম্ভাব্য প্রতিটি মানের সাথে মিলে যায় |
| , | মানের তালিকার বিভাজক — যেমন 1,15 মানে ১ তারিখ এবং ১৫ তারিখ |
| - | মানের পরিসীমা — যেমন 1-5 মানে সোমবার থেকে শুক্রবার |
| / | স্টেপ মান — যেমন */15 মানে প্রতি ১৫ একক |
কেন একটি ক্রন জেনারেটর ব্যবহার করবেন?
- সিনট্যাক্স ত্রুটি এড়িয়ে চলুন যা নিঃশব্দে শিডিউল করা কাজ ভেঙে দেয়
- শিডিউল স্থাপনের আগে সহজ ভাষায় ব্যাখ্যা দেখে নিন
- শুরু থেকে লেখার পরিবর্তে একটি সাধারণ উদাহরণ থেকে শুরু করুন
- একটি ঐচ্ছিক কমান্ড সহ পেস্ট করার জন্য প্রস্তুত ক্রনট্যাব লাইন পান
- কোনো ইনস্টলেশন বা অ্যাকাউন্টের প্রয়োজন নেই
কীভাবে একটি ক্রন এক্সপ্রেশন তৈরি করবেন
- মিনিট, ঘণ্টা, দিন, মাস এবং সপ্তাহের দিন ফিল্ড সেট করুন — অথবা একটি সাধারণ উদাহরণ বেছে নিন
- ঐচ্ছিকভাবে আপনি যে কমান্ড চালাতে চান তা যুক্ত করুন
- শিডিউলটি সঠিক কিনা তা নিশ্চিত করতে সহজ ভাষায় ব্যাখ্যাটি দেখুন
- ক্রনট্যাব লাইনটি কপি করুন এবং আপনার ক্রনট্যাব ফাইলে পেস্ট করুন
ক্রন সংক্রান্ত সর্বোত্তম পদ্ধতি
অত্যন্ত ঘন ঘন শিডিউলের চেয়ে নির্দিষ্ট সময়কে প্রাধান্য দিন — প্রতি ৫ বা ১৫ মিনিটে চললেই যদি কাজ হয়ে যায়, তবে প্রতি মিনিটে একটি কাজ চালানো সম্পদের অপচয় করে।
যখন কোনো কাজ মাসের দিন এবং সপ্তাহের দিন উভয়ের উপর নির্ভর করে, তখন মনে রাখবেন বেশিরভাগ ক্রন বাস্তবায়ন এই দুটি ফিল্ডকে OR হিসেবে বিবেচনা করে, AND নয়।
শিডিউল করা কাজের আউটপুট সবসময় লগ করুন (যেমন একটি ফাইলে রিডাইরেক্ট করুন) যাতে ব্যর্থতা অলক্ষিত না থাকে।
সাধারণ ব্যবহারের ক্ষেত্র
- স্বয়ংক্রিয় ডেটাবেস ব্যাকআপ
- লগ রোটেশন এবং পরিষ্কারের কাজ
- নির্ধারিত রিপোর্ট তৈরি
- ক্যাশ ওয়ার্মিং বা ইনভ্যালিডেশন
- পর্যায়ক্রমিক ইমেল ডাইজেস্ট পাঠানো
- সিস্টেমের মধ্যে ডেটা সিঙ্ক করা
- হেলথ চেক এবং মনিটরিং পিং
- সার্টিফিকেট বা টোকেন পুনর্নবীকরণ
সচরাচর জিজ্ঞাসিত প্রশ্নাবলী
একটি ক্রন কাজ কোন টাইমজোনে চলে?
ডিফল্টভাবে, ক্রন সিস্টেমের স্থানীয় টাইমজোন ব্যবহার করে। কিছু প্ল্যাটফর্ম আপনাকে প্রতি কাজ বা প্রতি ক্রনট্যাবের জন্য একটি নির্দিষ্ট টাইমজোন সেট করতে দেয় — আপনার সিস্টেমের ডকুমেন্টেশন দেখুন।
ক্রন এক্সপ্রেশনে সেকেন্ড অন্তর্ভুক্ত করা যায় কি?
স্ট্যান্ডার্ড ইউনিক্স ক্রন শুধুমাত্র পাঁচটি ফিল্ড সমর্থন করে (মিনিট এবং তার উপরে), সেকেন্ড ফিল্ড ছাড়াই। কিছু শিডিউলার, যেমন Quartz, একটি ঐচ্ছিক সেকেন্ড ফিল্ড সমর্থন করে, তবে তা একটি ভিন্ন ফরম্যাট।
আমি যদি মাসের দিন এবং সপ্তাহের দিন উভয়ই সেট করি তাহলে কী হবে?
বেশিরভাগ ক্রন বাস্তবায়ন যদি কোনো একটি শর্ত মিলে যায় তবে কাজটি চালায় (একটি OR, AND নয়)। শুধুমাত্র একটি নির্দিষ্ট তারিখে চালানোর জন্য যা একটি নির্দিষ্ট সপ্তাহের দিনেও পড়ে, সাধারণত আপনাকে স্ক্রিপ্টে অতিরিক্ত লজিক প্রয়োগ করতে হবে।
ব্যবহারের আগে আমি কীভাবে একটি ক্রন এক্সপ্রেশন পরীক্ষা করতে পারি?
এখানে দেখানো সহজ ভাষার ব্যাখ্যাটি দেখে নিশ্চিত করুন যে এটি আপনার উদ্দেশ্যের সাথে মিলে যায়, তারপর প্রোডাকশনে নির্ভর করার আগে একটি স্বল্পস্থায়ী পরীক্ষামূলক শিডিউল দিয়ে আপনার আসল সিস্টেমে যাচাই করুন।
আমার কি cron নাকি systemd টাইমার ব্যবহার করা উচিত?
Cron সহজ এবং সবজায়গায় কাজ করে, যা এটিকে সরল পুনরাবৃত্ত কাজের জন্য আদর্শ করে তোলে। systemd টাইমার আরও বেশি নিয়ন্ত্রণ প্রদান করে (ডিপেন্ডেন্সি, লগিং, মিসড-রান হ্যান্ডলিং) এবং যে সিস্টেমগুলো ইতিমধ্যে systemd ব্যবহার করে সেখানে এটি একটি ভালো পছন্দ।