ক্রন এক্সপ্রেশন সহজ করা: যেকোনো কিছু শিডিউল করুন
আপনাকে প্রতি রাত ৩টায় ডেটাবেস ব্যাকআপ চালাতে হবে। অথবা প্রতি সোমবার সকালে একটি রিপোর্ট পাঠাতে হবে। অথবা প্রতি ১৫ মিনিটে ক্যাশ পরিষ্কার করতে হবে। Linux এবং Unix সার্ভারে, এর জন্য টুল হলো ক্রন, এবং ক্রনকে কখন চালাতে হবে তা বলার উপায় হলো একটি ক্রন এক্সপ্রেশন।
ক্রন এক্সপ্রেশন প্রথম দেখায় ভয়ঙ্কর মনে হয়। 0 3 * * * বা */15 9-17 * * 1-5 প্যাটার্নটি না জানলে দুর্বোধ্য মনে হতে পারে। কিন্তু পাঁচটি ফিল্ড বুঝে ফেললে সিনট্যাক্সটি আশ্চর্যজনকভাবে সহজ।
পাঁচটি ফিল্ড
প্রতিটি স্ট্যান্ডার্ড ক্রন এক্সপ্রেশনে ঠিক পাঁচটি ফিল্ড থাকে, স্পেস দিয়ে আলাদা। প্রতিটি ফিল্ড সময়ের একটি একক উপস্থাপন করে:
┌───────────── মিনিট (0-59)
│ ┌───────────── ঘণ্টা (0-23)
│ │ ┌───────────── মাসের দিন (1-31)
│ │ │ ┌───────────── মাস (1-12)
│ │ │ │ ┌───────────── সপ্তাহের দিন (0-7, যেখানে 0 এবং 7 রবিবার)
│ │ │ │ │
* * * * *
এটুকুই। পাঁচটি ফিল্ড, বাম থেকে ডানে: মিনিট, ঘণ্টা, মাসের দিন, মাস, সপ্তাহের দিন।
আপনি কি জানতেন? "ক্রন" নামটি এসেছে গ্রিক শব্দ "ক্রোনোস" থেকে, যার অর্থ সময়। ক্রন ডেমন (ব্যাকগ্রাউন্ড প্রসেস) ১৯৭৫ সাল থেকে Unix-জাতীয় অপারেটিং সিস্টেমের একটি মূল অংশ।
বিশেষ অক্ষরগুলো
অ্যাস্টেরিস্ক (*) — প্রতিটি মান
একটি অ্যাস্টেরিস্ক মানে সেই ফিল্ডের "প্রতিটি সম্ভাব্য মান"।
* * * * * = প্রতি ঘণ্টার প্রতি মিনিটে প্রতিদিন।
কমা (,) — একাধিক মান
একটি কমা পৃথক মান আলাদা করে।
0 9,12,18 * * * = ঘণ্টা ৯, ১২ এবং ১৮-এর মিনিট ০-তে (সকাল ৯:০০, দুপুর ১২:০০, সন্ধ্যা ৬:০০)।
ড্যাশ (-) — মানের পরিসর
একটি ড্যাশ একটি পরিসর সংজ্ঞায়িত করে।
0 9-17 * * * = ৯ থেকে ১৭ পর্যন্ত প্রতি ঘণ্টায় মিনিট ০-তে (সকাল ৯:০০ থেকে বিকেল ৫:০০, প্রতি ঘণ্টায়)।
স্ল্যাশ (/) — স্টেপ মান
একটি স্ল্যাশ ব্যবধান সংজ্ঞায়িত করে।
*/15 * * * * = প্রতি ১৫ মিনিটে (প্রতি ঘণ্টায় মিনিট ০, ১৫, ৩০, ৪৫)।
0 */2 * * * = প্রতি ২ ঘণ্টায় মিনিট ০-তে (মধ্যরাত, ২ AM, ৪ AM, ...)।
ক্রন এক্সপ্রেশন পড়ার অনুশীলন
সাধারণ উদাহরণগুলো দেখা যাক। প্রতিটির জন্য, পাঁচটি ফিল্ড বাম থেকে ডানে পড়ুন।
0 3 * * * — প্রতিদিন রাত ৩:০০-এ
| ফিল্ড | মান | অর্থ |
|---|---|---|
| মিনিট | 0 | মিনিট ০-তে |
| ঘণ্টা | 3 | ঘণ্টা ৩-এ (রাত ৩টা) |
| মাসের দিন | * | প্রতিদিন |
| মাস | * | প্রতি মাসে |
| সপ্তাহের দিন | * | সপ্তাহের প্রতিদিন |
অনুবাদ: "প্রতিদিন রাত ৩:০০-এ।" রাতের ব্যাকআপের জন্য ক্লাসিক পছন্দ।
*/15 * * * * — প্রতি ১৫ মিনিটে
| ফিল্ড | মান | অর্থ |
|---|---|---|
| মিনিট | */15 | প্রতি ১৫ মিনিটে |
| ঘণ্টা | * | প্রতি ঘণ্টায় |
| মাসের দিন | * | প্রতিদিন |
| মাস | * | প্রতি মাসে |
| সপ্তাহের দিন | * | প্রতিদিন |
অনুবাদ: "প্রতি ১৫ মিনিটে, সারাদিন সারারাত।" হেলথ চেক এবং ক্যাশ রিফ্রেশের জন্য সাধারণ।
0 9 * * 1-5 — কার্যদিবসে সকাল ৯:০০-এ
| ফিল্ড | মান | অর্থ |
|---|---|---|
| মিনিট | 0 | মিনিট ০-তে |
| ঘণ্টা | 9 | ঘণ্টা ৯-এ |
| মাসের দিন | * | প্রতিদিন |
| মাস | * | প্রতি মাসে |
| সপ্তাহের দিন | 1-5 | সোমবার থেকে শুক্রবার |
অনুবাদ: "সোমবার থেকে শুক্রবার সকাল ৯:০০-এ।" দৈনিক কাজের রিপোর্টের জন্য পারফেক্ট।
0 0 1 * * — প্রতি মাসের প্রথম দিন
অনুবাদ: "প্রতি মাসের প্রথম দিনে মধ্যরাতে।" মাসিক রিপোর্ট, বিলিং বা ক্লিনআপের জন্য ব্যবহৃত।
30 8 * * 1 — প্রতি সোমবার সকাল ৮:৩০-এ
অনুবাদ: "প্রতি সোমবার সকাল ৮:৩০-এ।" সাপ্তাহিক টিম নোটিফিকেশনের জন্য চমৎকার।
নিজের ক্রন এক্সপ্রেশন লেখা
একটি পদ্ধতিগত পদ্ধতি:
- কখন দিয়ে শুরু করুন। "প্রতিদিন রাত ৩টায়" বা "ব্যবসায়িক সময়ে প্রতি ৫ মিনিটে।"
- বাম থেকে ডানে ফিল্ড পূরণ করুন। মিনিট দিয়ে শুরু করুন, তারপর ঘণ্টা, তারপর মাসের দিন, তারপর মাস, তারপর সপ্তাহের দিন।
- "প্রতি"-র জন্য
*ব্যবহার করুন। কোনো ফিল্ড নিয়ে চিন্তা না থাকলে*ব্যবহার করুন। - ডিপ্লয় করার আগে পরীক্ষা করুন। সবসময় যাচাই করুন আপনার এক্সপ্রেশন আপনার প্রত্যাশিত শিডিউল তৈরি করে।
সাধারণ প্যাটার্ন দ্রুত রেফারেন্স
| শিডিউল | এক্সপ্রেশন |
|---|---|
| প্রতি মিনিটে | * * * * * |
| প্রতি ৫ মিনিটে | */5 * * * * |
| প্রতি ঘণ্টায় | 0 * * * * |
| প্রতিদিন মধ্যরাতে | 0 0 * * * |
| প্রতিদিন রাত ৩:০০-এ | 0 3 * * * |
| প্রতি সোমবার সকাল ৯:০০-এ | 0 9 * * 1 |
| কার্যদিবসে সকাল ৮:৩০-এ | 30 8 * * 1-5 |
| প্রতি মাসের প্রথম দিন | 0 0 1 * * |
| ব্যবসায়িক সময়ে প্রতি ১৫ মিনিটে | */15 9-17 * * 1-5 |
| দিনে দুবার (সকাল ৯ এবং সন্ধ্যা ৬) | 0 9,18 * * * |
| প্রতি রবিবার রাত ২:০০-এ | 0 2 * * 0 |
সাধারণ ভুল
ঘণ্টা ০-২৩ ভুলে যাওয়া
ঘণ্টা ১৩ মানে বিকেল ১:০০, ঘণ্টা ১ নয়। 0 1 * * * লিখে বিকেল ১:০০-এ চলবে মনে করা একটি সাধারণ ভুল যখন এটি আসলে রাত ১:০০-এ চলে।
সপ্তাহের দিন বিভ্রান্তি
রবিবার ০ বা ৭ হতে পারে (দুটোই বৈধ)। সোমবার ১, শনিবার ৬। কেউ কেউ সোমবারকে ০ আশা করে।
মাসের দিন বনাম সপ্তাহের দিনের মিথস্ক্রিয়া
আপনি যদি মাসের দিন এবং সপ্তাহের দিন দুটোই উল্লেখ করেন (কোনোটিই * নয়), বেশিরভাগ ক্রন বাস্তবায়ন যেকোনো একটি শর্ত পূরণ হলে কাজ চালায়, দুটো একসাথে হলে নয়। এটা অনেকের অজানা।
সতর্কতা 0 9 15 * 1 এক্সপ্রেশনের অর্থ "সকাল ৯টায় ১৫ তারিখে, কিন্তু শুধু সোমবার হলে" নয়। এর অর্থ "প্রতি মাসের ১৫ তারিখে সকাল ৯টায় এবং প্রতি সোমবার সকাল ৯টায়।" এটি অপ্রত্যাশিত আচরণের একটি সাধারণ উৎস।
সময় অঞ্চল সচেতনতা
ক্রন সার্ভারের স্থানীয় সময় অঞ্চলে চলে। যদি আপনার সার্ভার UTC-তে থাকে এবং আপনি ঢাকায় (UTC+6) থাকেন, তাহলে 0 9 * * * ক্রন জব আপনার সময়ে বিকেল ৩:০০-এ চলে। সবসময় আপনার সার্ভারের সময় অঞ্চল পরীক্ষা করুন।
পরামর্শ ডিপ্লয় করার আগে আপনার ক্রন এক্সপ্রেশন পরীক্ষা এবং ভিজুয়ালাইজ করুন: কীভাবে ক্রন এক্সপ্রেশন পড়বেন এবং পরীক্ষা করবেন। পরবর্তী রান টাইম দেখুন এবং নিশ্চিত করুন শিডিউল আপনার ইচ্ছামতো।
আপনার ক্রন এক্সপ্রেশন তৈরি এবং পরীক্ষা করুন:
বিনামূল্যে, তাৎক্ষণিক, এবং কোনো সাইন-আপ দরকার নেই।