Cron এক্সপ্রেশন ফরম্যাট
I. Cron এক্সপ্রেশনের মৌলিক কাঠামো (প্রামাণ্য সূত্রসহ)
একটি মানসম্মত cron এক্সপ্রেশন 5টি সময় ফিল্ড এবং 1টি কমান্ড ফিল্ড নিয়ে গঠিত, যা Unix এবং Linux সিস্টেম কনভেনশন অনুসরণ করে। IEEE Std 1003.1-2017 (POSIX স্ট্যান্ডার্ড)[1] এবং Linux man 5 crontab ডকুমেন্টেশন[2] অনুযায়ী, ফরম্যাট হলো:
* * * * * command-to-execute
│ │ │ │ │
│ │ │ │ └── সপ্তাহের দিন (0-7, 0 এবং 7 উভয়ই রবিবার নির্দেশ করে)
│ │ │ └──── মাস (1-12)
│ │ └────── মাসের দিন (1-31)
│ └──────── ঘণ্টা (0-23)
└────────── মিনিট (0-59)
প্রামাণ্য নোট:
- POSIX স্ট্যান্ডার্ড[1] সর্বনিম্ন সামঞ্জস্যপূর্ণ স্পেসিফিকেশন সংজ্ঞায়িত করে,
*, , এবং - চিহ্নের সমর্থন প্রয়োজন।
- Linux সিস্টেমের
cron বাস্তবায়ন (যেমন Cronie) ধাপ মান (/) এবং বিশেষ স্ট্রিং (@daily, ইত্যাদি) দিয়ে কার্যকারিতা বাড়ায়, যেমন তাদের অফিসিয়াল ডকুমেন্টেশনে বিস্তারিত আছে[3]।
II. সময় ফিল্ডের চিহ্নের নিয়ম
প্রতিটি সময় ফিল্ড নিম্নলিখিত বিশেষ চিহ্ন সমর্থন করে:
| চিহ্ন |
বিবরণ |
উদাহরণ |
* |
যেকোনো মানের সাথে মেলে |
মিনিটে * = প্রতি মিনিট |
, |
একাধিক মান নির্দিষ্ট করে |
1,3,5 = মিনিট 1, 3 এবং 5 |
- |
একটি রেঞ্জ সংজ্ঞায়িত করে |
10-15 = মিনিট 10 থেকে 15 |
/ |
ধাপ মান (ব্যবধান) |
মিনিটে */5 = প্রতি 5 মিনিট |
? |
"কোনো নির্দিষ্ট মান নেই" (শুধুমাত্র DOM/DOW-এর জন্য) |
দ্বন্দ্ব এড়াতে ব্যবহৃত হয় |
আধুনিক cron বাস্তবায়ন (যেমন Vixie cron এবং এর ডেরিভেটিভ) আরও সমৃদ্ধ সিনট্যাক্স নিয়ম সমর্থন করে। IBM Cron রেফারেন্স ডকুমেন্টেশন[4] এবং Cronie প্রজেক্ট উইকি[3] অনুযায়ী, নিম্নলিখিত চিহ্নগুলো ব্যাপকভাবে সমর্থিত:
| চিহ্ন |
বিবরণ |
অফিসিয়াল ডকুমেন্টেশন উদাহরণ |
L |
শেষ দিন (কিছু বাস্তবায়নে সমর্থিত) |
0 0 L * * = প্রতি মাসের শেষ দিনে এক্সিকিউট হয়[5] |
W |
নিকটতম কর্মদিবস (যেমন, 15W = 15তম তারিখের নিকটতম কর্মদিবস) |
Quartz Scheduler ডকুমেন্টেশন[6] দেখুন (Java ইকোসিস্টেমে প্রচলিত) |
III. পূর্বনির্ধারিত উপনামের উৎস (@daily, ইত্যাদি)
@daily, @weekly এবং অনুরূপ উপনাম Paul Vixie-এর cron বাস্তবায়ন (Vixie cron, 1987 সালে প্রকাশিত)[7] থেকে উদ্ভূত এবং এখন আধুনিক Linux ডিস্ট্রিবিউশনে (যেমন Debian, Red Hat) ডিফল্ট বৈশিষ্ট্য। Debian cron ম্যানুয়াল[8] অনুযায়ী:
# 0 0 * * * এর সমতুল্য
@daily /path/to/script
IV. সাধারণ বাস্তবায়ন পার্থক্য এবং বিবেচনা
বিভিন্ন cron বাস্তবায়নে সূক্ষ্ম পার্থক্য রয়েছে, তাই তাদের নিজ নিজ ডকুমেন্টেশন দেখার প্রয়োজন:
| বাস্তবায়ন |
বৈশিষ্ট্য |
অফিসিয়াল রিসোর্স লিংক |
| Cronie |
Red Hat-এর ডিফল্ট cron, @ শর্টকাট সমর্থন করে |
Cronie GitHub |
| systemd |
cron প্রতিস্থাপন করে .timer ইউনিট দিয়ে (নতুন সিস্টেমের জন্য সুপারিশকৃত) |
systemd.timer ম্যানুয়াল |
| fcron |
আরও জটিল সিনট্যাক্স সমর্থন করে (যেমন, @yearly) |
fcron ওয়েবসাইট |
V. প্রস্তাবিত ভ্যালিডেশন টুল এবং প্রামাণ্য রেফারেন্স
-
Crontab ম্যানুয়াল পেজ
সম্পূর্ণ সিনট্যাক্সের জন্য টার্মিনালে man 5 crontab চালান - সবচেয়ে সরাসরি স্থানীয় প্রামাণ্য রেফারেন্স।
-
Cron এক্সপ্রেশন জেনারেটর
-
ওপেন সোর্স প্রজেক্ট ডকুমেন্টেশন
VI. সারসংক্ষেপ
POSIX স্ট্যান্ডার্ড, Linux ম্যানুয়াল পেজ এবং প্রধান বাস্তবায়নের (যেমন Cronie) ডকুমেন্টেশন একত্রিত করে ব্যবহারকারীরা cron এক্সপ্রেশনের মূল যুক্তি সঠিকভাবে বুঝতে পারেন। উন্নত ব্যবহারের জন্য (যেমন L এবং W), বাস্তবায়ন সামঞ্জস্য নোট করুন এবং অফিসিয়াল রিসোর্সকে অগ্রাধিকার দিন।
রেফারেন্স