Unix Cron এক্সপ্রেশন মেকার

শিডিউলড টাস্ক কনফিগার করার জন্য ভিজ্যুয়াল Cron এক্সপ্রেশন জেনারেটর। সেকেন্ড, মিনিট, ঘণ্টা, দিন, মাস, সপ্তাহ সময় একক সেটিংস সমর্থন করে, স্বয়ংক্রিয়ভাবে মানসম্মত Cron এক্সপ্রেশন তৈরি করে।

Cron এক্সপ্রেশন বিল্ডার

থেকে ধাপ
প্রতিটি মিনিট
থেকে পর্যন্ত

তৈরি ফলাফল

একটি বিদ্যমান Cron এক্সপ্রেশন প্রবেশ করান যাতে সংশ্লিষ্ট ফর্ম অপশনগুলো স্বয়ংক্রিয়ভাবে সেট হয়

পরবর্তী এক্সিকিউশন সময়

Cron এক্সপ্রেশন বোঝা

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)

প্রামাণ্য নোট:

  1. POSIX স্ট্যান্ডার্ড[1] সর্বনিম্ন সামঞ্জস্যপূর্ণ স্পেসিফিকেশন সংজ্ঞায়িত করে, *, , এবং - চিহ্নের সমর্থন প্রয়োজন।
  2. 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. প্রস্তাবিত ভ্যালিডেশন টুল এবং প্রামাণ্য রেফারেন্স

  1. Crontab ম্যানুয়াল পেজ সম্পূর্ণ সিনট্যাক্সের জন্য টার্মিনালে man 5 crontab চালান - সবচেয়ে সরাসরি স্থানীয় প্রামাণ্য রেফারেন্স।

  2. Cron এক্সপ্রেশন জেনারেটর

  3. ওপেন সোর্স প্রজেক্ট ডকুমেন্টেশন


VI. সারসংক্ষেপ

POSIX স্ট্যান্ডার্ড, Linux ম্যানুয়াল পেজ এবং প্রধান বাস্তবায়নের (যেমন Cronie) ডকুমেন্টেশন একত্রিত করে ব্যবহারকারীরা cron এক্সপ্রেশনের মূল যুক্তি সঠিকভাবে বুঝতে পারেন। উন্নত ব্যবহারের জন্য (যেমন L এবং W), বাস্তবায়ন সামঞ্জস্য নোট করুন এবং অফিসিয়াল রিসোর্সকে অগ্রাধিকার দিন।


রেফারেন্স

[1] POSIX স্ট্যান্ডার্ড: Cron সংজ্ঞা
[2] Linux man 5 crontab ম্যানুয়াল পেজ
[3] Cronie অফিসিয়াল ডকুমেন্টেশন: GitHub উইকি
[4] IBM Cron রেফারেন্স: Cron ফরম্যাট ব্যাখ্যা
[5] Quartz Cron সিনট্যাক্স: Quartz Scheduler ডক্স
[6] Vixie cron ইতিহাস: Vixie cron উইকি
[7] Debian cron ম্যানুয়াল: Debian CronHowto
[8] systemd.timer ম্যানুয়াল: systemd অফিসিয়াল ডকুমেন্টেশন

সচরাচর জিজ্ঞাসিত প্রশ্ন (FAQ)

Cron এক্সপ্রেশন কী?

Cron এক্সপ্রেশন হলো স্পেস দ্বারা পৃথকীকৃত 5 বা 7টি ফিল্ড নিয়ে গঠিত একটি স্ট্রিং, যা Unix-সদৃশ অপারেটিং সিস্টেমে একটি শিডিউল উপস্থাপন করতে ব্যবহৃত হয়। এটি আপনাকে নির্দিষ্ট সময়ে বা বিরতিতে স্বয়ংক্রিয়ভাবে চালানোর জন্য টাস্ক (যেমন ব্যাকআপ বা স্ক্রিপ্ট) শিডিউল করতে দেয়।

স্ট্যান্ডার্ড এবং বর্ধিত মোডের মধ্যে পার্থক্য কী?

স্ট্যান্ডার্ড মোড 5টি ফিল্ড (মিনিট, ঘণ্টা, মাসের দিন, মাস, সপ্তাহের দিন) ব্যবহার করে এবং এটি Linux/Unix cron job-এর মানসম্মত ফরম্যাট। বর্ধিত মোড 7টি ফিল্ড ব্যবহার করে, শুরুতে সেকেন্ড এবং শেষে বছর যোগ করে। এটি প্রায়শই Quartz (Java) বা Spring-এর মতো আধুনিক অ্যাপ্লিকেশন শিডিউলার ব্যবহার করে।

Cron-এ '?' চিহ্নের অর্থ কী?

'?' চিহ্নের অর্থ হলো 'কোনো নির্দিষ্ট মান নেই'। এটি শুধুমাত্র 'মাসের দিন' এবং 'সপ্তাহের দিন' ফিল্ডে ব্যবহৃত হয়। এই দুটি ফিল্ডের একটিতে কিছু নির্দিষ্ট করার প্রয়োজন হলে অন্যটি সম্পর্কে চিন্তা না করার জন্য এটি দরকারী। উদাহরণস্বরূপ, সপ্তাহের যেকোনো দিনে হোক, মাসের 10 তারিখে একটি টাস্ক চালাতে চাইলে 'মাসের দিন' ফিল্ডে '10' এবং 'সপ্তাহের দিন' ফিল্ডে '?' দিন।

আমি কি একটি বিদ্যমান এক্সপ্রেশন থেকে Cron এক্সপ্রেশন তৈরি করতে পারি?

হ্যাঁ! আপনি 'বিপরীত পার্স' ফিচার ব্যবহার করতে পারেন। আপনার বিদ্যমান Cron এক্সপ্রেশনটি ইনপুট বক্সে পেস্ট করুন এবং 'এক্সপ্রেশন পার্স করুন' ক্লিক করুন। ভিজ্যুয়াল বিল্ডার আপনার এক্সপ্রেশনের সেটিংস প্রতিফলিত করতে স্বয়ংক্রিয়ভাবে আপডেট হবে।