Cron ایکسپریشن بلڈر

استعمال کا طریقہ 3 مراحل
  1. عام شیڈول میں سے کوئی چنیں، یا منٹ، گھنٹہ، مہینے کا دن، مہینہ اور ہفتے کا دن طے کریں۔
  2. الفاظ میں پڑھنے اور اگلے اوقات دیکھنے کے لیے وضاحت اور پیش منظر دبائیں۔
  3. Cron ایکسپریشن کاپی کریں۔
پانچ خانے: منٹ، گھنٹہ، مہینے کا دن، مہینہ، ہفتے کا دن۔ یہاں لکھیں یا نیچے دیے گئے انتخاب کار استعمال کریں — یہ ایک دوسرے کے ساتھ چلتے رہتے ہیں۔
شیڈول

پانچ خانوں والا Vixie cron فرض کیا گیا ہے، جو Linux پر crontab اور بیشتر شیڈیولر استعمال کرتے ہیں۔ ایک اصول اکثر لوگوں کو دھوکا دیتا ہے اور یہاں اس کا لحاظ رکھا گیا ہے: جب مہینے کا دن اور ہفتے کا دن دونوں محدود کیے جائیں تو کام اُس وقت چلتا ہے جب کوئی ایک میل کھائے، دونوں نہیں۔ اوقات آپ کے براؤزر کے اپنے ٹائم زون میں حقیقی مقامی منٹ گن کر نکالے جاتے ہیں، اس لیے گھڑی کی تبدیلیاں فرض کرنے کے بجائے شامل کی جاتی ہیں۔ سیکنڈ اور سال کے خانے، اور Quartz کی L, W اور # توسیعات، اس نحو کا حصہ نہیں ہیں۔

یہ ٹول کیسے کام کرتا ہے

خالی جگہ سے الگ پانچ خانے منٹ، گھنٹہ، مہینے کا دن، مہینہ اور ہفتے کا دن بیان کرتے ہیں۔ یہ فارمیٹ Vixie cron سے آیا ہے، وہی شیڈولر جو تقریباً ہر Linux تقسیم کے ساتھ آتا ہے، اور یہی نحو Kubernetes CronJobs، GitHub Actions، AWS EventBridge، Jenkins اور زیادہ تر ہوسٹنگ کنٹرول پینلز میں ملتا ہے۔ ایک بار سیکھ لیں تو یہ ہر جگہ ساتھ چلتا ہے۔

بلڈر آپ کے لکھے ہوئے کو محض قبول کرنے کے بجائے اگلے چلنے کے اوقات دکھاتا ہے، کیونکہ اس نحو میں باریک غلطی کرنا آسان ہے۔ سب کچھ آپ کے براؤزر میں چلتا ہے: cron کی سطریں اکثر اندرونی ہوسٹ نام، اسکرپٹ کے راستے اور تعیناتی کے اوقات ظاہر کر دیتی ہیں، اس لیے کوئی ایکسپریشن کہیں نہیں بھیجا جاتا۔

وہ حصے جو لوگوں کو دھوکہ دیتے ہیں

  • مہینے کا دن اور ہفتے کا دن ایک OR ہیں: دونوں کو محدود کریں تو cron اُس وقت چلتا ہے جب کوئی ایک مطابقت رکھے، نہ کہ جب دونوں رکھیں۔ یہی cron کی سب سے عام غلطی ہے۔
  • ایک منٹ سب سے باریک ریزولوشن ہے: معیاری crontab میں سیکنڈ کا خانہ نہیں ہوتا۔ اس سے تیز کسی چیز کے لیے ایسا کام درکار ہے جو اندرونی طور پر رکے، یا کوئی دوسرا شیڈولر۔
  • اتوار 0 بھی ہے اور 7 بھی: یہ تکرار جان بوجھ کر ہے، اور اس ابتدائی اختلاف سے آئی ہے کہ ہفتہ کہاں سے شروع ہوتا ہے۔
  • گھڑیاں بدلتی ہیں: بہار میں مقامی وقت کا ایک گھنٹہ غائب ہو جاتا ہے اور خزاں میں دہرا جاتا ہے۔ سرورز کو UTC پر چلائیں اور وقت کے لحاظ سے نازک کام رات کے پچھلے پہر سے دور رکھیں۔

cron ایکسپریشن کیا ہے؟

cron ایکسپریشن ایک مختصر اسٹرنگ ہے جو شیڈولر کو بتاتی ہے کہ کوئی کام کب چلانا ہے۔ خالی جگہوں سے الگ پانچ خانے منٹ، گھنٹہ، مہینے کا دن، مہینہ اور ہفتے کا دن بیان کرتے ہیں۔ ایکسپریشن 30 2 * * 1 کا مطلب ہے ہر پیر، صبح ڈھائی بجے۔

یہ فارمیٹ Vixie cron سے آیا ہے، وہی شیڈولر جو تقریباً ہر Linux تقسیم کے ساتھ آتا ہے۔ یہی پانچ خانوں والا نحو crontab فائل سے کہیں آگے بھی ملتا ہے: Kubernetes CronJobs میں، GitHub Actions کے ورک فلو میں، AWS EventBridge کے قواعد میں، Jenkins کی پائپ لائنوں میں، Laravel اور Django کے شیڈول شدہ کاموں میں، اور زیادہ تر ہوسٹنگ کنٹرول پینلز کی cron ترتیبات میں۔ اسے ایک بار سیکھ لیں اور یہ ہر جگہ آپ کے ساتھ چلتا ہے۔

اس میں باریک غلطی کرنا بھی آسان ہے، اور اسی لیے اوپر دیا گیا بلڈر آپ کے لکھے ہوئے کو محض قبول کرنے کے بجائے اگلے چلنے کے اوقات دکھاتا ہے۔

پانچوں خانے، ترتیب سے

مقام خانہ جائز قدریں
1منٹ0–59
2گھنٹہ0–23
3مہینے کا دن1–31
4مہینہ1–12، یا JAN–DEC
5ہفتے کا دن0–7، یا SUN–SAT

ہفتے کے دن والے خانے میں 0 اور 7 دونوں کا مطلب اتوار ہے۔ یہ تکرار جان بوجھ کر ہے اور ابتدائی cron نفاذوں کے اُس اختلاف سے آئی ہے کہ ہفتہ کہاں سے شروع ہوتا ہے۔

ہر خانے میں استعمال ہونے والے خاص حروف

  • ستارہ * — ہر قدر۔ گھنٹے والے خانے میں اس کا مطلب ہر گھنٹہ ہے۔
  • کوما 1,15,30 — مخصوص قدروں کی فہرست۔
  • ہائفن 9-17 — ایک شامل دائرہ، نو سے سترہ تک۔
  • سلیش */15 — ایک قدم۔ ہر پندرہویں قدر، یعنی منٹ 0، 15، 30 اور 45۔

قدم دائروں کے ساتھ مل کر بھی چلتے ہیں۔ منٹ والے خانے میں 0-30/10 0، 10، 20 اور 30 پر چلتا ہے، پھر اگلے گھنٹے تک رک جاتا ہے۔

اس ٹول سے cron ایکسپریشن کیسے بنائیں

  1. عام شیڈول کی فہرست سے کوئی ابتدائی نقطہ چنیں، یا سیدھا اوپر والے خانے میں ایکسپریشن لکھ دیں۔
  2. پانچوں انتخاب کاروں میں سے کسی کو بھی ایڈجسٹ کریں۔ یہ اوپر دیے گئے ایکسپریشن کے ساتھ ہم قدم رہتے ہیں، اس لیے کسی ایک میں ترمیم دوسرے کو اپ ڈیٹ کر دیتی ہے۔
  3. وضاحت اور پیش منظر دبائیں۔ آپ کو شیڈول کی سادہ زبان میں تشریح اور اگلے چلنے کے اوقات ملتے ہیں، تاکہ آپ کسی سرور کے قریب پہنچنے سے پہلے تصدیق کر سکیں کہ ایکسپریشن وہی مطلب رکھتا ہے جو آپ چاہتے تھے۔
  4. ایکسپریشن اپنے crontab، ورک فلو فائل یا کنٹرول پینل میں کاپی کر لیں۔

سب کچھ آپ کے براؤزر میں چلتا ہے۔ کوئی ایکسپریشن کہیں نہیں بھیجا جاتا، اور یہ بات سننے سے زیادہ اہم ہے — cron کی سطریں اکثر اندرونی ہوسٹ نام، اسکرپٹ کے راستے اور تعیناتی کے اوقات ظاہر کر دیتی ہیں۔

عام cron شیڈول

ایکسپریشن کب چلتا ہے
* * * * *ہر منٹ
*/5 * * * *ہر پانچ منٹ بعد
0 * * * *ہر گھنٹے، گھنٹہ شروع ہوتے ہی
0 */6 * * *ہر چھ گھنٹے بعد
0 3 * * *روزانہ 03:00 بجے
30 9 * * 1-5کام کے دنوں میں 09:30 بجے
0 0 * * 0ہفتہ وار، اتوار آدھی رات
0 0 1 * *ماہانہ، مہینے کی پہلی تاریخ
0 0 1 1 *سالانہ، 1 جنوری

مہینے کے دن اور ہفتے کے دن والا پھندا

یہ cron کی سب سے عام غلطی ہے، اور یہ تجربہ کار انجینئروں کو بھی پکڑ لیتی ہے۔

جب آپ مہینے کے دن اور ہفتے کے دن، دونوں خانوں کو محدود کرتے ہیں، تو cron کام اُس وقت چلاتا ہے جب کوئی ایک مطابقت رکھے — نہ کہ جب دونوں رکھیں۔ چنانچہ 0 0 1 * 1 کا مطلب یہ نہیں کہ ”مہینے کی پہلی تاریخ، مگر صرف اُس وقت جب وہ پیر ہو“۔ اس کا مطلب ہے ”ہر مہینے کی پہلی تاریخ، اور اس کے علاوہ ہر پیر“۔ یعنی آپ کی توقع کے ایک کے بجائے مہینے میں تقریباً پانچ بار۔

اگر ان میں سے کوئی ایک خانہ ستارہ ہو تو یہ قاعدہ لاگو نہیں ہوتا اور سب کچھ آپ کی توقع کے مطابق چلتا ہے۔ اوپر دیا گیا بلڈر اس رویے کو چھپانے کے بجائے اس کا لحاظ رکھتا ہے، اس لیے پیش منظر حقیقی چلنے کے اوقات دکھاتا ہے، وہ بھی جو آپ کے پیشِ نظر نہیں تھے۔

cron اور گھڑی کی تبدیلیاں

ڈے لائٹ سیونگ وہ جگہ ہے جہاں شیڈول خاموشی سے بگڑ جاتے ہیں۔ جب گھڑیاں آگے بڑھتی ہیں تو مقامی وقت کا ایک گھنٹہ سرے سے موجود ہی نہیں ہوتا، اس لیے اُس وقفے کے اندر شیڈول کیے گئے کام کے پاس چلنے کے لیے کوئی جائز منٹ نہیں بچتا۔ جب گھڑیاں پیچھے ہوتی ہیں تو وہ گھنٹہ دہرا جاتا ہے۔

مختلف شیڈولر اسے مختلف طریقے سے حل کرتے ہیں، اور سب سے محفوظ عادت یہ ہے کہ سرور UTC پر چلائے جائیں اور وقت کے لحاظ سے نازک کاموں کو رات کے پچھلے پہر سے دور رکھا جائے۔ یہاں کا پیش منظر حقیقی مقامی تاریخوں سے گزر کر آپ کے اپنے براؤزر کے ٹائم زون میں اوقات نکالتا ہے، اس لیے جو شیڈول گھڑی کی تبدیلی کے خلا میں آ جائے وہ ایک گھنٹہ دیر سے چلنے کے بجائے اسے چھوڑتا ہوا دکھایا جاتا ہے۔

یہ نحو کیا کچھ شامل نہیں کرتا

پانچ خانوں والا فارمیٹ cron کی واحد بولی نہیں، اور انہیں آپس میں ملا دینے سے ایسے ایکسپریشن بنتے ہیں جو یا تو رد ہو جاتے ہیں یا، اس سے بدتر، خاموشی سے غلط پڑھ لیے جاتے ہیں۔

  • سیکنڈ۔ کچھ شیڈولر، خاص طور پر Quartz اور Spring، پہلے ایک سیکنڈ کا خانہ رکھتے ہیں، جس سے چھ خانے بن جاتے ہیں۔ معیاری crontab میں سیکنڈ کا خانہ نہیں ہوتا — ایک منٹ سب سے باریک ریزولوشن ہے۔
  • سال۔ Quartz سال کے لیے ایک اختیاری ساتواں خانہ دیتا ہے۔ Vixie cron نہیں دیتا۔
  • L، W اور # ایکسٹینشنز۔ Quartz انہیں ”مہینے کا آخری دن“، ”قریب ترین کام کا دن“ اور ”nواں کام کا دن“ کے لیے استعمال کرتا ہے۔ یہ اس نحو کا حصہ نہیں۔
  • مختصر میکرو۔ کئی cron نفاذ @daily، @hourly اور @reboot قبول کرتے ہیں۔ انہیں ایکسپریشن پارسر کے بجائے cron ڈیمن سنبھالتا ہے، اس لیے ان کی معاونت پلیٹ فارم کے حساب سے مختلف ہوتی ہے۔

اکثر پوچھے گئے سوالات

خاص طور پر Cron ایکسپریشن بلڈر کے بارے میں۔ اس زمرے سے متعلق عمومی سوالات کے جواب زمرے کے صفحے پر موجود ہیں۔

ہر پندرہ منٹ بعد، سارا دن، ہر دن۔ یہ ہر گھنٹے کے منٹ 0، 15، 30 اور 45 پر چلتا ہے — دن میں 96 بار۔
معیاری cron کے ساتھ آپ ایسا نہیں کر سکتے۔ ایک منٹ سب سے چھوٹا وقفہ ہے جس کی وہ معاونت کرتا ہے۔ عام حل یہ ہے کہ ہر منٹ چلنے والا کام رکھا جائے جو اندرونی طور پر 30 سیکنڈ رک کر اپنا کام دوسری بار کرے، یا systemd timers جیسے کسی شیڈولر پر منتقل ہوا جائے جو منٹ سے کم وقفوں کی معاونت کرتا ہو۔
دونوں ہیں۔ ہفتے کے دن کا خانہ 0 سے 7 تک قبول کرتا ہے، جہاں 0 اور 7 دونوں کا مطلب اتوار ہے، اس لیے پیر 1 اور ہفتہ 6 ہے۔
بطور ڈیفالٹ، اُس مشین کا سسٹم ٹائم زون جو کام چلا رہی ہے، جو ضروری نہیں کہ وہی ہو جس میں آپ بیٹھے ہیں۔ کئی شیڈولر آپ کو CRON_TZ یا اس جیسی فی کام ترتیب مقرر کرنے دیتے ہیں۔ اس صفحے کا پیش منظر آپ کے براؤزر کا ٹائم زون استعمال کرتا ہے، اس لیے دکھائے گئے اوقات پر بھروسہ کرنے سے پہلے دیکھ لیں کہ یہ آپ کے سرور سے مطابقت رکھتا ہے۔
تقریباً ہمیشہ اوپر بیان کیا گیا مہینے کے دن اور ہفتے کے دن والا قاعدہ۔ اگر آپ نے دونوں خانوں کو ستارے کے علاوہ کچھ اور مقرر کیا ہو، تو cron انہیں ایسی شرائط سمجھنے کے بجائے جو دونوں پوری ہوں، متبادل سمجھتا ہے۔
نہیں۔ بلڈر مکمل طور پر آپ کے براؤزر میں JavaScript سے چلتا ہے۔ کچھ اپ لوڈ، ریکارڈ یا محفوظ نہیں ہوتا۔

نئے ٹولز، خصوصیات اور کارکردگی بڑھانے کے مشوروں کی اطلاع پانے کے لیے سبسکرائب کریں۔