ডেভেলপার

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

যেকোনো ৫-ফিল্ড cron এক্সপ্রেশন পেস্ট করুন এবং সহজ ভাষায় তাৎক্ষণিকভাবে দেখুন এর অর্থ কী — আর কাজটি কখন চলে তা বুঝতে তারকা চিহ্ন ও স্ল্যাশের দিকে চোখ কুঁচকে তাকানোর দরকার নেই।

এই ক্যালকুলেটরটি কি আপনাকে সাহায্য করেছে?

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

Cron হলো Unix/Linux cron জব, CI/CD পাইপলাইন, Kubernetes CronJobs এবং অগণিত টাস্ক শিডিউলারে ব্যবহৃত প্রমিত শিডিউলিং সিনট্যাক্স। একটি cron এক্সপ্রেশন একটি সম্পূর্ণ পুনরাবৃত্তি সময়সূচি পাঁচটি সংক্ষিপ্ত ফিল্ডে প্রকাশ করে, যা শক্তিশালী কিন্তু এক নজরে পড়া কঠিন — "0 */4 * * 1-5" কি প্রতি ৪ ঘণ্টায় কর্মদিবসে চলে, নাকি কিছু সম্পূর্ণ ভিন্ন? এই পার্সারটি একটি cron এক্সপ্রেশনকে ফিল্ড অনুযায়ী বিশ্লেষণ করে এবং সাধারণ ইংরেজি বাক্যে অনুবাদ করে, যাতে আপনি এটি ডিপ্লয় করার আগে সময়সূচি সঠিক কিনা যাচাই করতে পারেন, অথবা cron সিনট্যাক্স টেবিল না দেখেই অন্য কারও লেখা সময়সূচি দ্রুত বুঝতে পারেন।

এই ক্যালকুলেটর কখন ব্যবহার করবেন

  • নির্ধারিত টাস্ক বা CI/CD পাইপলাইন স্থাপনের আগে একটি cron সময়সূচি যাচাই করার সময়
  • একটি নির্ধারিত কাজ অপ্রত্যাশিত সময়ে চলেছে বা চলেনি — সেটি ডিবাগ করার সময়
  • একটি Kubernetes CronJob বা GitHub Actions সময়সূচি পর্যালোচনা করার সময় যা একজন সহকর্মী লিখেছেন
  • সিসঅ্যাডমিন বা DevOps সার্টিফিকেশন কোর্সের জন্য cron সিনট্যাক্স শেখার সময়
  • সার্ভার মাইগ্রেশনের সময় বিদ্যমান crontab এন্ট্রি অডিট করার সময়
  • একটি জটিল সময়সূচির প্যাটার্ন ডিজাইন করার সময় যা একাধিক সময়ের সীমাবদ্ধতা একত্রিত করে

ধাপসমূহ:

  1. ইনপুটে একটি ৫-ফিল্ড cron এক্সপ্রেশন পেস্ট বা টাইপ করুন।
  2. প্রতিটি ফিল্ড আলাদাভাবে তার অর্থসহ দেখুন।
  3. সম্পূর্ণ সময়সূচির সহজ ভাষার অনুবাদ পড়ুন।
  4. "প্রতি ঘণ্টায়" বা "কর্মদিবসে সকাল ৯টায়"-এর মতো সাধারণ সময়সূচির জন্য একটি প্রিসেট বাটন চেষ্টা করুন।

সূত্র

┌───────────── মিনিট (0-59) │ ┌───────────── ঘণ্টা (0-23) │ │ ┌───────────── মাসের দিন (1-31) │ │ │ ┌───────────── মাস (1-12) │ │ │ │ ┌───────────── সপ্তাহের দিন (0-6, রবিবার=0) │ │ │ │ │ * * * * *

ব্যবহারের ক্ষেত্র

  • একটি নির্ধারিত টাস্ক বা CI/CD পাইপলাইন স্থাপনের আগে cron সময়সূচি যাচাই করা
  • সহকর্মীর লেখা একটি Kubernetes CronJob বা সার্ভারলেস নির্ধারিত ফাংশন বোঝা
  • একটি নির্ধারিত কাজ অপ্রত্যাশিত সময়ে কেন চলেছে (বা চলেনি) তা ডিবাগ করা
  • সিসঅ্যাডমিন বা DevOps কোর্সের জন্য cron সিনট্যাক্স শেখা
  • সার্ভার মাইগ্রেশনের সময় বিদ্যমান crontab এন্ট্রি অডিট করা

প্রধান সুবিধাসমূহ

  • দুর্বোধ্য cron সিনট্যাক্সকে তাৎক্ষণিকভাবে সহজ ভাষায় অনুবাদ করে
  • স্পষ্টতার জন্য ৫টি ফিল্ডের প্রতিটি আলাদাভাবে ভেঙে দেখায়
  • সবচেয়ে সাধারণ সময়সূচির প্যাটার্নের জন্য এক-ক্লিক প্রিসেট
  • সাইন-আপের প্রয়োজন নেই, সম্পূর্ণভাবে আপনার ব্রাউজারে চলে

প্রো টিপস

  • সন্দেহ থাকলে, সময়সূচিটি প্রত্যাশিতভাবে চালু হচ্ছে কিনা তা নিশ্চিত করতে প্রথমে খুব নিকট ভবিষ্যতের একটি সময় দিয়ে পরীক্ষা করুন
  • যখন সম্ভব, পঠনযোগ্যতার জন্য কমা দিয়ে প্রতিটি মান তালিকাভুক্ত করার পরিবর্তে রেঞ্জ (1-5) ব্যবহার করুন
  • আপনার সার্ভার বা শিডিউলারের টাইমজোন সেটিং দুবার পরীক্ষা করুন — এটি cron-এ "ভুল সময়" এর সবচেয়ে সাধারণ উৎস
  • সাধারণ দৈনিক/সাপ্তাহিক সময়সূচির চেয়ে জটিল যেকোনো কিছুর জন্য, স্থাপনার আগে সহজ ভাষার বর্ণনা লিখে আপনার উদ্দেশ্যের সাথে তুলনা করুন

এড়ানোর সাধারণ ভুলসমূহ

  • ভুলে যাওয়া যে মাসের দিন এবং সপ্তাহের দিন OR লজিকে একত্রিত হয়, AND লজিকে নয়
  • 0-ইনডেক্স করা সপ্তাহের দিন (0=রবিবার) অন্যান্য সিস্টেমের 1-ইনডেক্স করা প্রথার সাথে গুলিয়ে ফেলা
  • মাসের দিন ফিল্ডে */7 মানে "প্রতি ৭ দিনে" বলে ধরে নেওয়া — আসলে এর অর্থ হলো 1, 8, 15, 22, 29 দিন, যা প্রতি মাসে নতুন করে শুরু হয়
  • ভুলে যাওয়া যে বেশিরভাগ cron ইমপ্লিমেন্টেশন সার্ভারের স্থানীয় টাইমজোনে চলে, UTC বা ব্যবহারকারীর টাইমজোনে নয়

মূল শব্দ ব্যাখ্যা

Cron: Unix-জাতীয় অপারেটিং সিস্টেমে ব্যবহৃত একটি সময়-ভিত্তিক জব শিডিউলার
Crontab: cron জবের একটি তালিকা সংজ্ঞায়িত করতে ব্যবহৃত ফাইল বা কমান্ড
স্টেপ ভ্যালু (Step value): "/N" সিনট্যাক্স, যার অর্থ ফিল্ডের সর্বনিম্ন মান থেকে শুরু করে "প্রতি N ইউনিটে"
CronJob: cron-নির্ধারিত টাস্ক চালানোর জন্য Kubernetes-এর নেটিভ রিসোর্স

সম্পর্কিত ধারণা

  • সময় পার্থক্য ক্যালকুলেটর: দুটি তারিখ এবং সময়ের মধ্যে সময়কাল গণনা করুন
  • দিন বাকি ক্যালকুলেটর: একটি নির্দিষ্ট তারিখ পর্যন্ত দিন গণনা করুন
  • ইউনিক্স টাইমস্ট্যাম্প কনভার্টার: ইউনিক্স টাইমস্ট্যাম্প এবং তারিখের মধ্যে রূপান্তর করুন
  • টাইমজোন ওভারল্যাপ ক্যালকুলেটর: টাইমজোন জুড়ে কাজের সময়ের ওভারল্যাপ খুঁজুন
  • JSON ফর্ম্যাটার: JSON ডেটা ফর্ম্যাট এবং যাচাই করুন

উদাহরণ

"0 9 * * 1-5" এক্সপ্রেশনটি এভাবে ভাঙা হয়: মিনিট=0, ঘণ্টা=9, মাসের প্রতিটি দিন, প্রতিটি মাস, সোমবার থেকে শুক্রবার — অর্থাৎ "সোমবার থেকে শুক্রবার, সকাল 09:00টায়"।

আপনার ফলাফলের ব্যাখ্যা

পার্সারটি একটি ৫-ফিল্ড cron এক্সপ্রেশনকে তার পৃথক উপাদানে ভেঙে প্রতিটিকে সহজ ইংরেজিতে অনুবাদ করে। পাঁচটি ফিল্ড হলো: মিনিট (0-59), ঘণ্টা (0-23), মাসের দিন (1-31), মাস (1-12), এবং সপ্তাহের দিন (0-6, যেখানে 0 হলো রবিবার)। যখন সবগুলো ফিল্ড বর্তমান সময়ের সাথে মিলে যায়, তখন একটি কাজ চলে — এটি ফিল্ডগুলোর মধ্যে AND লজিক। বিশেষভাবে মাসের দিন এবং সপ্তাহের দিনের মধ্যে মিথস্ক্রিয়তা লক্ষ্য করুন, যা OR লজিক ব্যবহার করে (AND নয়)। দিন 15 এবং সপ্তাহের দিন 5 দিয়ে নির্ধারিত একটি কাজ প্রতি মাসের 15 তারিখেও এবং প্রতি শুক্রবারেও চলবে — শুধুমাত্র 15 তারিখে পড়া শুক্রবারে নয়। এটি সময়সূচি বাগের একটি সাধারণ কারণ।

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

একটি cron এক্সপ্রেশনে ৫টি ফিল্ড কী কী?
ক্রমানুসারে: মিনিট (0-59), ঘণ্টা (0-23), মাসের দিন (1-31), মাস (1-12), এবং সপ্তাহের দিন (0-6, যেখানে 0 রবিবার)। যখন সবগুলো ফিল্ড বর্তমান সময়ের সাথে মিলে যায়, তখন একটি কাজ চলে।
cron সিনট্যাক্সে তারকা চিহ্ন (*) কী বোঝায়?
তারকা চিহ্নের অর্থ হলো সেই ফিল্ডের জন্য "যেকোনো মান অনুমোদিত"। উদাহরণস্বরূপ, ঘণ্টা ফিল্ডে * মানে কাজটি যেকোনো ঘণ্টায় চলতে পারে — অর্থাৎ সেই ফিল্ড সময়সূচিতে কোনো সীমাবদ্ধতা রাখে না।
*/5 এর অর্থ কী?
স্ল্যাশ চিহ্নটি একটি স্টেপ ভ্যালু নির্দেশ করে। মিনিট ফিল্ডে */5 মানে "প্রতি ৫ মিনিটে" — ফিল্ডের সর্বনিম্ন মান থেকে শুরু করে প্রতি ৫ ইউনিটে পুনরাবৃত্তি হয়।
শুধু কর্মদিবসের জন্য কীভাবে একটি কাজ নির্ধারণ করব?
সপ্তাহের দিন ফিল্ডে একটি রেঞ্জ ব্যবহার করুন: 1-5 সোমবার থেকে শুক্রবার নির্দেশ করে। একটি নির্দিষ্ট ঘণ্টা ও মিনিটের সাথে মিলিয়ে, যেমন "0 9 * * 1-5" প্রতি কর্মদিবসে সকাল ৯:০০টায় চলে।
cron সিনট্যাক্সে কমা (,) কী বোঝায়?
কমা একটি ফিল্ডে একাধিক মান আলাদা করে। উদাহরণস্বরূপ, মিনিট ফিল্ডে 0,15,30,45 মানে কাজটি 0, 15, 30 এবং 45 মিনিটে চলে। কমা একটি সাধারণ OR: কাজটি যেকোনো তালিকাভুক্ত মানে চলে।
cron সিনট্যাক্সে হাইফেন (রেঞ্জ) কী?
হাইফেন একটি মানের রেঞ্জ সংজ্ঞায়িত করে। উদাহরণস্বরূপ, সপ্তাহের দিন ফিল্ডে 1-5 মানে সোমবার থেকে শুক্রবার (দিন 1 থেকে 5)। রেঞ্জ উভয় প্রান্ত অন্তর্ভুক্ত করে। আপনি রেঞ্জ অন্যান্য সিনট্যাক্সের সাথে একত্রিত করতে পারেন: 1-5,0 মানে সোমবার থেকে শুক্রবার এবং রবিবার।
কীভাবে প্রতি ২ সপ্তাহে একটি কাজ নির্ধারণ করব?
স্ট্যান্ডার্ড cron স্বাভাবিকভাবে দ্বিসাপ্তাহিক নির্ধারণ সমর্থন করে না। আপনার দুটি বিকল্প আছে: (1) একটি র‍্যাপার স্ক্রিপ্ট ব্যবহার করুন যা তারিখ পরীক্ষা করে এবং প্রতি অন্য সপ্তাহেই নির্বাহ করে, অথবা (2) AWS EventBridge বা ক্যালেন্ডার-ভিত্তিক ট্রিগার সহ সিস্টেম টাইমারের মতো আরও জটিল সিনট্যাক্স সমর্থনকারী টাস্ক শিডিউলার ব্যবহার করুন।
cron কোন টাইমজোন ব্যবহার করে?
স্ট্যান্ডার্ড cron সার্ভারের স্থানীয় টাইমজোন ব্যবহার করে। আপনার সার্ভার UTC-তে কনফিগার করা থাকলে, স্থানীয় টাইমজোন নির্বিশেষে সমস্ত cron কাজ UTC-তে চলে। সবসময় সার্ভারের টাইমজোন সেটিং যাচাই করুন, বিশেষত ক্লাউড এনভায়রনমেন্টে যেখানে ডিফল্ট আপনার প্রত্যাশিত টাইমজোনের সাথে মিলতে নাও পারে।
cron এবং crontab এর মধ্যে পার্থক্য কী?
Cron হলো ডেমন (পটভূমি সেবা) যা নির্ধারিত কাজ চালায়। Crontab হলো কনফিগারেশন ফাইল (অথবা কমান্ড) যা cron কাজের তালিকা সংজ্ঞায়িত করে। যখন আপনি আপনার crontab সম্পাদনা করেন, তখন আপনি সেই শিডিউল সংজ্ঞা লিখেন যা cron ডেমন পড়ে এবং নির্বাহ করে।
cron দিয়ে ডেটাইম সেভিং টাইম কীভাবে মোকাবেলা করব?
বেশিরভাগ cron বাস্তবায়ন DST-র জন্য স্বয়ংক্রিয়ভাবে সমন্বয় করে না। যখন ঘড়ি সামনে যায়, 2:00 AM-এ নির্ধারিত একটি কাজ সম্পূর্ণভাবে বাদ পড়তে পারে। যখন ঘড়ি পেছনে যায়, একটি কাজ দুইবার চলতে পারে। DST সমস্যা এড়াতে, ট্রানজিশন আওয়ারের বাইরে (2:00-3:00 AM) কাজ নির্ধারণ করুন অথবা UTC-ভিত্তিক নির্ধারণ ব্যবহার করুন।
আমি কি সাব-মিনিট ইন্টারভালের জন্য cron ব্যবহার করতে পারি?
স্ট্যান্ডার্ড cron মিনিট-স্তরের গ্র্যানুলারিটি রাখে এবং মিনিটে একবারের চেয়ে বেশি ঘন ঘন কাজ নির্ধারণ করতে পারে না। সাব-মিনিট ইন্টারভালের জন্য, systemd টাইমার, ছোট ইন্টারভাল সহ Kubernetes CronJobs, বা অ্যাপ্লিকেশন-স্তরের শিডিউলার (মিলিসেকেন্ড সাপোর্ট সহ node-cron) ব্যবহার করুন।

আরও টুল আবিষ্কার করুন

আমাদের পুরো টুল লাইব্রেরি থেকে নতুন নির্বাচন।