ہر منٹ میں کرون جاب چلائیں۔

Run Cron Job Every Minute



اگر آپ لینکس پر بیک گراؤنڈ میں کوئی پروگرام یا سکرپٹ چلانا چاہتے ہیں تو کرون جاب بہت ضروری ہے۔ کرون جابس کی مدد سے ، آپ مقررہ وقت کے بعد کسی پروگرام یا سکرپٹ کو پس منظر میں چلا سکتے ہیں۔

آئیے کرون جابز کی حقیقی زندگی کی کچھ مثالوں پر ایک نظر ڈالتے ہیں۔







  • ہم کہتے ہیں ، آپ ایک ویب سائٹ کے مالک ہیں اور آپ اپنی ویب سائٹ کے تمام صارفین کو ہر روز ایک ای میل بھیجنا چاہتے ہیں۔ آپ کو صرف یہ کرنا ہے کہ ، ایک ای میل بھیجنے والا اسکرپٹ لکھیں اور ہر روز اس اسکرپٹ کو چلانے کے لیے ایک کرون جاب قائم کریں۔
  • ہم کہتے ہیں ، آپ ایک اشتہاری ایجنسی کے مالک ہیں اور آپ ان تمام اشتہاریوں کو یاد دلانا چاہتے ہیں جن کا بیلنس ریچارج کرنے کے لیے 5 $ سے کم ہے۔ آپ کو صرف ایک سکرپٹ لکھنا ہے جو تمام مشتہرین کا بیلنس چیک کرتا ہے اور جب یہ 5 $ سے کم ہو جائے گا تو یہ اشتہاری کے موبائل نمبر یا ای میل پر نوٹیفکیشن بھیج دے گا۔ پھر اسکرپٹ کو ہر 5 سے 10 منٹ ، یا ہر گھنٹے چلانے کے لیے ایک کرون جاب قائم کریں۔

لینکس میں کرون جابز کے بہت سے دوسرے استعمال ہیں۔



اس آرٹیکل میں ، میں آپ کو دکھاؤں گا کہ لینکس پر ہر منٹ میں کرون جابس کیسے چلائیں۔ میں مظاہرے کے لیے ڈیبین 9 اسٹریچ استعمال کروں گا۔ لیکن آپ اپنی پسند کی کوئی بھی جدید لینکس تقسیم استعمال کر سکتے ہیں۔ آو شروع کریں.



لینکس پر ، آپ کو ہونا ضروری نہیں ہے۔ جڑ کرون کی نوکریاں چلانے کے لیے۔ آپ بطور صارف بطور کرون جابس چلا سکتے ہیں۔ لینکس پر ہر صارف a استعمال کر سکتا ہے۔ کرونٹاب کرون جابس کا اپنا سیٹ چلانے کے لیے فائل کریں۔





پہلے سے طے شدہ طور پر ، صارف کے پاس a نہیں ہوتا ہے۔ کرونٹاب لینکس پر فائل. آپ a بنا سکتے ہیں۔ کرونٹاب درج ذیل کمانڈ کے ساتھ فائل کریں:

$کرونٹاب-اور



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

کی کرونٹاب فائل بنائی جانی چاہیے (اگر پہلے سے دستیاب نہ ہو) اور اپنے پسندیدہ ٹیکسٹ ایڈیٹر کے ساتھ کھولی جائے۔ اب آپ اس فائل کے اختتام پر اپنی کرون کی نوکریاں شامل کر سکتے ہیں اور ایک بار جب آپ خوش ہو جائیں تو اسے محفوظ کریں اور ٹیکسٹ ایڈیٹر سے باہر نکلیں۔

ہر منٹ میں کمانڈ چلانے کا نحو:

کا نحو۔ کرونٹاب فائل درج ذیل ہے:

منٹ گھنٹہ دن اوف ماہ مہینہ دن اوف ویک کمانڈ ٹورن۔

یہاں ،

  • منٹ ہو سکتا ہے کو 59۔ .
  • گھنٹہ بھی ہو سکتا ہے کو 59۔ .
  • دن کا مہینہ ہو سکتا ہے کو 31۔ .
  • مہینہ ہو سکتا ہے کو 12۔ .
  • dayOfWeek ہو سکتا ہے کو . اور مطلب اتوار ، یعنی پیر ، منگل اور اسی طرح.

چلانے کے لیے a commandToRun ہر منٹ کمانڈ کریں ، آپ کو اسے میں لکھنا چاہیے۔ کرونٹاب درج ذیل فائل:

* * * * *commandToRun

ہر منٹ میں ایک کروب جاب چلانا:

اب جب کہ ہم نظریات جانتے ہیں ، آئیے ایک سادہ سکرپٹ شامل کریں۔ timer.sh کرنے کے لئے کرونٹاب فائل کریں اور دیکھیں کہ اس کا انتظام کیسے کریں۔

میں timer.sh اسکرپٹ ، میرے پاس صرف کوڈ کی درج ذیل لائنیں ہیں۔ یہ صرف ایک نئی فائل بنانا ہے۔ /home/shovon/bin/timer.log (اگر پہلے سے موجود نہیں ہے) اور اس میں ڈیٹ کمانڈ کی پیداوار شامل کرتا ہے۔

اب آئیے اسکرپٹ کو ہمارے ساتھ شامل کریں۔ کرونٹاب اور اسے ہر منٹ کو درج ذیل لائن کے ساتھ چلنے دیں:

* * * * * /گھر/شوون/ہوں/timer.sh

ایک بار جب آپ محفوظ کر لیں۔ کرونٹاب فائل اور ٹیکسٹ ایڈیٹر سے باہر نکلیں ، نیا۔ کرونٹاب فائل انسٹال ہونی چاہیے۔

ایک منٹ گزرنے کے بعد ، ایک نئی فائل ہے۔ timer.log مطلوبہ ڈائریکٹری میں بنایا گیا ہے جیسا کہ آپ نیچے اسکرین شاٹ کے نشان زدہ حصے میں دیکھ سکتے ہیں۔

سے timer.log log فائل ، یہ واضح ہے کہ اسکرپٹ۔ timer.sh ہر منٹ چلتا ہے.

کرون جابس سے غلطیاں پکڑنا:

کرون جاب سے غلطیاں پکڑنے کے لیے ، آپ غلطیوں کو بھیج سکتے ہیں a error.log فائل اور عام آؤٹ پٹ access.log مثال کے طور پر فائل. یقینا آپ فائلوں کو کسی بھی چیز کا نام دے سکتے ہیں۔

اس کو ظاہر کرنے کے لیے ، میں نے اپنے سکرپٹ میں ترمیم کی۔ timer.sh تھوڑا سا. اب غلطیاں بھیجی جاتی ہیں۔ error.log فائل میں / home / shovon / bin ڈائریکٹری اور آؤٹ پٹ بھیجے جاتے ہیں۔ access.log میں / home / shovon / bin ڈائریکٹری

سب سے پہلے /tmp/i_must_be_here فائل موجود نہیں ہے ، لہذا مجھے میں غلطی ملتی ہے error.log فائل جیسا کہ آپ دیکھ سکتے ہیں۔

کی access.log فائل اس وقت خالی ہے۔

اب میں فائل بنانے جا رہا ہوں۔ /tmp/i_must_be_here

اور جیسا کہ آپ دیکھ سکتے ہیں ، آؤٹ پٹ میں ہے۔ access.log ابھی فائل کریں.

اگر آپ چاہیں تو ، آپ اسی فائل میں آؤٹ پٹ اور غلطیوں کو ری ڈائریکٹ کرسکتے ہیں:

جیسا کہ آپ دیکھ سکتے ہیں ، STDIN اور STDERR آؤٹ پٹ کو بھیجے جاتے ہیں۔ out.log فائل.

اس بات کو یقینی بنانا کہ نوکری دوبارہ چلانے سے پہلے آخری کام بھاگنا ختم ہو گیا:

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

یہ سادہ رسم الخط ایسا ہی کرتا ہے۔

جیسا کہ آپ دیکھ سکتے ہیں ، timer.pid فائل بنائی گئی ہے.

پڑھنا access.log فائل ثابت کرتی ہے کہ پچھلی کرون جاب چلنے سے پہلے کرون جاب نہیں چلتی۔ جیسا کہ آپ دیکھ سکتے ہیں ، یہ 01:32:01 پر چلا اور اگلی بار اسے 01:33:01 پر چلنا چاہیے تھا ، لیکن ایسا نہیں ہوا۔ اس کے بجائے ، یہ تقریبا: 3 منٹ بعد ، 01:35:01 پر چلا۔

آسان ڈیبگنگ کے لیے کرون جاب آؤٹ پٹ کا اہتمام کرنا:

آپ اپنے کرون جاب کو ڈیبگ کرنا آسان بنانے کے لیے آؤٹ پٹ کو اچھی طرح فارمیٹ کر سکتے ہیں۔

یہ کیسے کیا جا سکتا ہے اس کی ایک مثال درج ذیل اسکرپٹ میں دی گئی ہے۔

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

آپ کرون جابس اور شیل سکرپٹ کے ساتھ حیرت انگیز کام کر سکتے ہیں۔ میں نے یہاں کچھ خیالات کا مظاہرہ کیا۔ لیکن آسمان آپ کی حد ہے۔ اپنے خیالات کے ساتھ بلا جھجھک تجربہ کریں۔ اس مضمون کو پڑھنے کے لیے شکریہ۔