ToolDeck

Cron Expression Generator

ভিজ্যুয়াল বিল্ডার দিয়ে সহজেই Cron Expression তৈরি করুন

দ্রুত প্রিসেট

মিনিট

ঘন্টা

মাসের দিন

মাস

সপ্তাহের দিন

Cron এক্সপ্রেশন

0 9 * * *

minute hour day(month) month day(week)

Cron Expression Generator কী?

Cron expression generator হল এমন একটি টুল যা ভিজ্যুয়াল ইন্টারফেসের মাধ্যমে cron শিডিউল স্ট্রিং তৈরি করে — হাতে লেখার প্রয়োজন ছাড়াই। Cron expression হল পাঁচ-ক্ষেত্রের স্ট্রিং (মিনিট, ঘন্টা, মাসের দিন, মাস, সপ্তাহের দিন) যা নির্ধারণ করে একটি পুনরাবৃত্তিমূলক কাজ কখন চলবে। এই ফরম্যাটটি ১৯৭৯ সালের মূল Unix cron daemon থেকে উদ্ভূত এবং এখন crontab, Kubernetes CronJobs, GitHub Actions, AWS EventBridge, Google Cloud Scheduler এবং ডজনখানেক জব-শিডিউলিং লাইব্রেরিতে ব্যবহৃত হয়।

স্মৃতি থেকে cron expression লেখা বাগের একটি সাধারণ উৎস। পাঁচটি ক্ষেত্র কিছুটা অপ্রত্যাশিতভাবে পরস্পরের সাথে কাজ করে: মিনিট ক্ষেত্রে */15 স্টেপ মান 0, 15, 30, এবং 45 মিনিটে রান তৈরি করে, আর 5/15 শুরু হয় মিনিট 5 থেকে এবং 5, 20, 35, 50 দেয়। নন-ওয়াইল্ডকার্ড মান দিয়ে day-of-month ও day-of-week একত্রিত করলে AND নয়, OR শর্ত তৈরি হয় — যা অভিজ্ঞ ইঞ্জিনিয়ারদেরও চমকে দেয়। ভিজ্যুয়াল জেনারেটর এই অস্পষ্টতা দূর করে — আপনি কাঙ্ক্ষিত শিডিউল নির্বাচন করুন, সঠিক সিনট্যাক্স স্বয়ংক্রিয়ভাবে তৈরি হয়।

Cron generator এবং cron parser আলাদা। Parser একটি বিদ্যমান expression নিয়ে সহজ ভাষায় ব্যাখ্যা করে। Generator বিপরীত দিকে কাজ করে: আপনি শিডিউলের বিবরণ দেন, টুল মিলে যাওয়া cron স্ট্রিং আউটপুট করে। নতুন শিডিউলড জব তৈরিতে generator ব্যবহার করুন; বিদ্যমান কনফিগারেশন পর্যালোচনা বা ডিবাগিংয়ে parser ব্যবহার করুন।

এই Cron Generator কেন ব্যবহার করবেন?

হাতে cron expression তৈরি করতে ক্ষেত্রের ক্রম, মানের পরিসর এবং অপারেটর নিয়ম মুখস্থ করতে হয়। একটি ভুল স্থানে রাখা ক্ষেত্র দৈনিক জবকে প্রতি মিনিটে চলতে বাধ্য করে। এই generator আপনাকে ভিজ্যুয়ালি শিডিউল নির্বাচন করতে এবং এক ক্লিকে ফলাফল কপি করতে দেয়।

🖱️
ভিজ্যুয়াল শিডিউল বিল্ডার
ড্রপডাউন ও টগল থেকে মিনিট, ঘন্টা, দিন, মাস এবং সপ্তাহের দিনের মান নির্বাচন করুন। প্রতিটি ক্ষেত্র পরিবর্তন করার সঙ্গে সঙ্গে cron expression রিয়েল টাইমে আপডেট হয়। সিনট্যাক্স মুখস্থ করার প্রয়োজন নেই।
🔒
ব্রাউজারেই প্রসেস হয়
সম্পূর্ণ জেনারেশন আপনার ব্রাউজারে চলে। কোনো শিডিউল ডেটা সার্ভারে পাঠানো হয় না। আপনার cron expression এবং জব কনফিগারেশন আপনার ডিভাইসেই থাকে।
পূর্বরূপসহ তাৎক্ষণিক আউটপুট
তৈরির সময়েই জেনারেট করা cron expression এবং পরবর্তী নির্ধারিত রান সময়ের পূর্বরূপ দেখুন। কনফিগে কপি করার আগে শিডিউলটি সঠিক কিনা যাচাই করুন।
📋
অ্যাকাউন্টের প্রয়োজন নেই
পেজ খুলুন এবং তৈরি শুরু করুন। কোনো লগইন, API কী বা ইনস্টলেশন নেই। মোবাইলসহ যেকোনো আধুনিক ব্রাউজারযুক্ত ডিভাইসে কাজ করে।

Cron Generator-এর ব্যবহারের ক্ষেত্র

Frontend ডেভেলপার
অ্যাডমিন প্যানেল এবং শিডিউলিং UI-এর জন্য cron expression তৈরি করুন। ডেটাবেসে cron স্ট্রিং সংরক্ষণ করে এমন ইউজার-ফেসিং শিডিউল পিকারের জন্য সঠিক সিনট্যাক্স জেনারেট করুন।
Backend ইঞ্জিনিয়ার
Celery, Sidekiq এবং Bull-এর মতো টাস্ক কিউর জন্য cron expression তৈরি করুন। শিডিউল স্ট্রিং জেনারেট করুন, পরবর্তী রান যাচাই করুন এবং জব কনফিগারেশনে পেস্ট করুন।
DevOps / SRE
Kubernetes CronJobs, CI/CD পাইপলাইন এবং ইনফ্রাস্ট্রাকচার অটোমেশনের জন্য cron শিডিউল জেনারেট করুন। সিনট্যাক্স ভুল ছাড়াই ব্যাকআপ উইন্ডো, সার্টিফিকেট নবায়ন এবং লগ রোটেশনের expression তৈরি করুন।
QA ইঞ্জিনিয়ার
ইন্টিগ্রেশন টেস্টিংয়ের জন্য নির্দিষ্ট ব্যবধানে ট্রিগার করে এমন টেস্ট cron expression তৈরি করুন। স্কেজুলার আচরণ যাচাই করতে পূর্বানুমানযোগ্য রান সময় তৈরি করে এমন শিডিউল জেনারেট করুন।
Data ইঞ্জিনিয়ার
ETL পাইপলাইন ট্রিগার এবং ডেটা সিঙ্ক শিডিউলের জন্য cron expression তৈরি করুন। সুনির্দিষ্ট টাইমিং সহ এক্সট্রাকশন, ট্রান্সফর্মেশন এবং লোড পর্যায়ের জন্য অ-ওভারল্যাপিং শিডিউল জেনারেট করুন।
শিক্ষার্থী / শিক্ষানবিশ
ভিজ্যুয়াল বিল্ডারে পরীক্ষা-নিরীক্ষা করে cron সিনট্যাক্স শিখুন। পৃথক ক্ষেত্র পরিবর্তন করুন এবং দেখুন expression ও পরবর্তী রান সময় কীভাবে বদলায়। ওয়াইল্ডকার্ড, রেঞ্জ এবং স্টেপ ভ্যালু সম্পর্কে পরিষ্কার ধারণা পাবেন।

সাধারণ Cron শিডিউল প্রিসেট

নিচের সারণিতে সর্বাধিক ব্যবহৃত শিডিউলের cron expression তালিকাবদ্ধ। অধিকাংশ প্রোডাকশন জব এই প্যাটার্নগুলোর মধ্যে পড়ে। নিজের প্রকৃত টাইমিং অনুযায়ী পৃথক ক্ষেত্র পরিবর্তন করুন।

শিডিউলExpressionসাধারণ ব্যবহার
Every minute* * * * *Health checks, queue polling
Every 5 minutes*/5 * * * *Metrics collection, cache refresh
Every 15 minutes*/15 * * * *API sync, dashboard updates
Every hour0 * * * *Log rotation, report generation
Every 6 hours0 */6 * * *Database backups, digest emails
Daily at midnight0 0 * * *Nightly batch jobs, cleanup scripts
Daily at 9 AM0 9 * * *Daily reports, notification digests
Weekdays at 9 AM0 9 * * 1-5Business-hours tasks, standup reminders
Every Monday at midnight0 0 * * 1Weekly reports, dependency updates
First of every month0 0 1 * *Billing runs, monthly aggregation
Every Sunday at 2:30 AM30 2 * * 0Full backups during low-traffic window
January 1st at midnight0 0 1 1 *Annual reports, license renewals

Cron Expression-এর মূল উপাদান

প্রতিটি cron expression-এ ঠিক পাঁচটি ক্ষেত্র থাকে, বাম থেকে ডানে পড়তে হয়। প্রতিটি ক্ষেত্র নির্দিষ্ট মান ও অপারেটর গ্রহণ করে। এই নিয়মগুলো জানলেই প্রোডাকশনে যেকোনো শিডিউল লেখা সম্ভব।

পাঁচ-ক্ষেত্রের cron expression বিন্যাস:
*min0-59
*hour0-23
*day1-31
*month1-12
*weekday0-6

চারটি অপারেটর নিয়ন্ত্রণ করে প্রতিটি ক্ষেত্রে মান কীভাবে মেলানো হয়। এগুলো একত্রিত করা যায়: day-of-week ক্ষেত্রে 1-5/2 মানে সোমবার, বুধবার, শুক্রবার (রেঞ্জ 1-5, স্টেপ 2)।

অপারেটরসিনট্যাক্সউদাহরণফলাফল
Wildcard** (minute)Every minute
Lista,b,c1,15 (day)1st and 15th
Rangea-b9-17 (hour)9 AM through 5 PM
Step*/n*/10 (minute)Every 10 minutes
Range+Stepa-b/n10-30/5 (min)10, 15, 20, 25, 30

কোড উদাহরণ

Node.js, Python, Go এবং bash-এ cron শিডিউল তৈরি ও নিবন্ধন করার পদ্ধতি:

JavaScript (Node.js)
import { CronJob } from 'cron';

// Build a cron expression: every weekday at 9:00 AM
const expression = '0 9 * * 1-5';

const job = new CronJob(expression, () => {
  console.log('Running weekday morning task');
});
job.start();

// Programmatic expression building
function buildCron({ minute = '*', hour = '*', dom = '*', month = '*', dow = '*' }) {
  return `${minute} ${hour} ${dom} ${month} ${dow}`;
}

const expr = buildCron({ minute: '0', hour: '*/6', dow: '1-5' });
console.log(expr); // → "0 */6 * * 1-5"
Python
from crontab import CronTab

# Create a new cron job for the current user
cron = CronTab(user=True)

# Build a job: run backup.py every day at 2:30 AM
job = cron.new(command='python3 /home/user/backup.py')
job.setall('30 2 * * *')

print(job)           # → 30 2 * * * python3 /home/user/backup.py
print(job.is_valid()) # → True

# Schedule every 15 minutes on weekdays
job2 = cron.new(command='/usr/bin/sync-data')
job2.minute.every(15)
job2.dow.during('MON', 'FRI')

cron.write()  # Save to user's crontab

# Verify next run time
from croniter import croniter
from datetime import datetime

it = croniter('30 2 * * *', datetime.now())
print(it.get_next(datetime))  # → next 2:30 AM timestamp
Go
package main

import (
    "fmt"
    "strings"
    "github.com/robfig/cron/v3"
)

// BuildCron constructs a 5-field cron expression from parts
func BuildCron(minute, hour, dom, month, dow string) string {
    fields := []string{minute, hour, dom, month, dow}
    return strings.Join(fields, " ")
}

func main() {
    // Generate: every weekday at 9 AM
    expr := BuildCron("0", "9", "*", "*", "1-5")
    fmt.Println(expr) // → 0 9 * * 1-5

    // Validate and schedule it
    c := cron.New()
    _, err := c.AddFunc(expr, func() {
        fmt.Println("Running scheduled task")
    })
    if err != nil {
        fmt.Printf("Invalid expression: %v\n", err)
        return
    }
    c.Start()
}
Bash (crontab)
# Open the crontab editor to add a new job
crontab -e

# Add a cron job without opening an editor:
# Run cleanup.sh every Sunday at 3 AM
(crontab -l 2>/dev/null; echo "0 3 * * 0 /home/user/cleanup.sh") | crontab -

# Generate and add a job: every 10 minutes, log disk usage
EXPR="*/10 * * * *"
CMD="df -h >> /var/log/disk-usage.log"
(crontab -l 2>/dev/null; echo "$EXPR $CMD") | crontab -

# Verify the job was added
crontab -l | tail -1
# → */10 * * * * df -h >> /var/log/disk-usage.log

# Remove all cron jobs (use with caution)
# crontab -r

সচরাচর জিজ্ঞাসা

Cron expression-এ ক্ষেত্রের সঠিক ক্রম কী?
মানক পাঁচ-ক্ষেত্রের ক্রম হল: মিনিট (0-59), ঘন্টা (0-23), মাসের দিন (1-31), মাস (1-12), সপ্তাহের দিন (0-6, যেখানে 0 হল রবিবার)। এই ক্রম POSIX দ্বারা সংজ্ঞায়িত এবং crontab, Kubernetes, GitHub Actions ও অধিকাংশ cron লাইব্রেরিতে ব্যবহৃত। Quartz Scheduler-এর মতো কিছু টুল একটি সেকেন্ড ক্ষেত্র যোগ করে ছয় ক্ষেত্র করে, তবে পাঁচ-ক্ষেত্রের বিন্যাসই সর্বজনীন ডিফল্ট।
'প্রতি N মিনিটে' cron expression কীভাবে তৈরি করব?
মিনিট ক্ষেত্রে স্টেপ অপারেটর ব্যবহার করুন: */N। প্রতি 5 মিনিটে লিখুন */5 * * * *। প্রতি 15 মিনিটে লিখুন */15 * * * *। স্টেপ অপারেটর ক্ষেত্রের পরিসরকে সমানভাবে ভাগ করে। লক্ষ্য করুন */7 ঘন্টার সীমা পেরিয়ে প্রতি 7 মিনিটে রান তৈরি করে না; এটি মিনিট 0, 7, 14, 21, 28, 35, 42, 49, 56-এ রান করে, তারপর পরবর্তী ঘন্টায় 0 থেকে পুনরায় শুরু হয়।
প্রতি মাসের শেষ দিনে চলে এমন cron expression তৈরি করা কি সম্ভব?
মানক POSIX cron-এ 'মাসের শেষ দিন' অপারেটর নেই। crontab বা Kubernetes CronJobs-এ 0 0 L * * লেখা যায় না। সমাধানের পথ হল 28-31 দিনের জন্য শিডিউল করা এবং একটি শেল চেক যোগ করা ([ $(date +%d -d tomorrow) -eq 01 ]), অথবা L মডিফায়ার সমর্থনকারী Quartz-এর মতো বর্ধিত cron বাস্তবায়ন ব্যবহার করা। AWS EventBridge রেট expression-ও নেটিভলি শেষ দিন লক্ষ্য করতে পারে।
Cron generator এবং cron parser-এর মধ্যে পার্থক্য কী?
Cron generator আপনার শিডিউলিং প্রয়োজনীয়তা নেয় (যেমন, 'প্রতি সপ্তাহের দিন সকাল 9টায়') এবং সঠিক cron expression আউটপুট করে (0 9 * * 1-5)। Cron parser বিপরীতে কাজ করে: একটি বিদ্যমান expression নিয়ে মানব-পাঠযোগ্য বিবরণ তৈরি করে। নতুন শিডিউল তৈরিতে generator ব্যবহার করুন। বিদ্যমানগুলো পর্যালোচনা বা ডিবাগিংয়ে parser ব্যবহার করুন।
ওভারল্যাপিং cron জব কীভাবে এড়াবেন?
Cron নিজে ওভারল্যাপিং রান প্রতিরোধ করে না। প্রতি মিনিটে শিডিউল করা কোনো জব যদি 90 সেকেন্ড নেয়, দুটি ইন্সট্যান্স ওভারল্যাপ করবে। এটি প্রতিরোধ করতে লক ফাইল (bash-এ flock), ডিস্ট্রিবিউটেড লক (Redis, etcd) বা আপনার স্কেজুলারের অন্তর্নির্মিত কনকারেন্সি পলিসি ব্যবহার করুন। Kubernetes CronJobs-এ concurrencyPolicy ক্ষেত্র Forbid বা Replace-এ সেট করা যায়। Celery-র মতো অ্যাপ্লিকেশন-স্তরের স্কেজুলারে solo pool বা টাস্ক-স্তরের লক ব্যবহার করুন।
Cron-এ সপ্তাহের প্রথম দিন 0 নাকি 1?
POSIX cron-এ 0 হল রবিবার এবং 6 হল শনিবার। অধিকাংশ বাস্তবায়নে 0 ও 7 উভয়ই রবিবার প্রতিনিধিত্ব করে। Quartz Scheduler ভিন্ন নিয়ম ব্যবহার করে যেখানে 1 হল রবিবার এবং 7 হল শনিবার। আপনার সিস্টেম যদি নামযুক্ত দিন (SUN, MON, TUE) সমর্থন করে, প্ল্যাটফর্ম জুড়ে বিভ্রান্তি এড়াতে সংখ্যার পরিবর্তে সেগুলো ব্যবহার করুন।
নির্দিষ্ট টাইমজোনের জন্য cron expression কীভাবে তৈরি করব?
ঐতিহ্যবাহী crontab সিস্টেমের স্থানীয় টাইমজোন ব্যবহার করে। কিছু সিস্টেমে crontab ফাইলে TZ ভেরিয়েবল সেট করা যায় (TZ=America/New_York)। Kubernetes CronJobs সংস্করণ 1.25 থেকে .spec.timeZone ক্ষেত্র সমর্থন করে। AWS EventBridge এবং Google Cloud Scheduler প্রতি শিডিউলে টাইমজোন নির্দিষ্ট করতে দেয়। সর্বদা কনফিগারেশনে cron expression-এর পাশে প্রত্যাশিত টাইমজোন নথিভুক্ত করুন।