کرون جابس: مکمل ابتدائی ٹیوٹوریل

Cron Jobs Complete Beginners Tutorial



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

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







کرون جاب کی بنیادی باتیں۔

آئیے کرون جاب کی کچھ بنیادی باتیں سمجھیں۔



کرونڈ کیا ہے؟

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



کرون جاب نحو۔

کرون جاب کے لیے نحو حسب ذیل ہے:





* * * * *کمانڈ/سکرپٹ

بائیں سے:

  • پہلا * منٹس سے مساوی ہے (0-59)
  • دوسرا * اوقات سے مطابقت رکھتا ہے (0-23)
  • تیسرا * مہینے کے دن سے مطابقت رکھتا ہے (1-31)
  • چوتھا * سال کے مہینے کے مساوی ہے (1-12)
  • پانچواں * ہفتے کے دن سے مطابقت رکھتا ہے (0-6 ، اتوار سے ہفتہ)

فیلڈ میں متعدد اقدار کی وضاحت کرنے کے لیے ، آپریٹر کی درج ذیل علامتیں استعمال کریں:



  1. نجمہ (*): کسی فیلڈ کے لیے تمام ممکنہ اقدار کی وضاحت کرنا۔
  2. ڈیش (-): کو s اقدار کی ایک حد مقرر کریں۔
  3. کوما (،): اقدار کی فہرست بتانا۔
  4. جداکار (/): ایک قدم کی قیمت کی وضاحت کرنا۔

کرونٹاب فائل میں ترمیم

کرونٹاب ایک فائل ہے جس میں ایک مخصوص نحو میں شیڈول شدہ نوکریاں شامل ہیں۔ کرونٹاب فائلوں کی دو قسمیں ہیں۔ ایک سسٹم کے لیے مخصوص کرون جابز کے لیے اور دوسرا صارف کے لیے مخصوص کرون جابز کے لیے۔

سسٹم کرون کی نوکریاں۔

سسٹم میں وسیع کرون جابس میں واقع ہیں۔ /etc/crontab فائل اور /etc/cron.d ڈائریکٹری ، اور وہ گزر رہے ہیں۔ /etc/cron.hourly ، /etc/cron.daily ، /etc/cron.weekly اور /etc/cron.monthly. صرف ایک سسٹم ایڈمنسٹریٹر ان فائلوں تک رسائی حاصل کرسکتا ہے۔

ایک سسٹم ایڈمنسٹریٹر مندرجہ ذیل کمانڈ کا استعمال کرتے ہوئے کرون جاب کی وضاحت کرسکتا ہے۔

$نینو /وغیرہ/کرونٹاب

یہاں نوکری کا نحو ہے۔ /etc/crontab فائل:

# منٹ گھنٹہ دن کا مہینہ دن ہفتہ کا صارف نام کمانڈ۔
* * * * *صارف 1۔ifconfig

صارف کے لیے مخصوص کرون کی نوکریاں۔

صارف کے لیے مخصوص کرون کی نوکریاں / میں واقع ہیں var / spool / cron / crontabs۔ ڈائریکٹری اگرچہ آپ ان نوکریوں کو دستی طور پر ترمیم کر سکتے ہیں ، یہ سفارش کی جاتی ہے کہ ان ملازمتوں کو crontab -e کمانڈ کے ذریعے ترمیم کریں۔

ایک معیاری صارف مندرجہ ذیل کمانڈ کا استعمال کرتے ہوئے کرون جاب کی وضاحت کرسکتا ہے۔

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

مثال کے طور پر ، اگر آپ بطور ٹیسٹ صارف لاگ ان ہیں تو ، crontab -e کمانڈ چلانے سے ٹیسٹ صارف کے لیے کرونٹاب فائل میں ترمیم ہوگی۔ اسی طرح ، اگر آپ بطور روٹ صارف لاگ ان ہیں تو ، crontab -e کمان روٹ صارف کے لیے کرونٹاب فائل میں ترمیم کرے گی۔

کسی دوسرے صارف کے لیے کرونٹاب فائل میں ترمیم کرنے کے لیے ٹرمینل میں درج ذیل کمانڈ جاری کریں:

$سودوکرونٹاب <صارف نام> -اور

مثال کے طور پر ، اگر آپ بطور ٹیسٹ 1 صارف لاگ ان ہیں اور ٹیسٹ 2 صارف کے لیے کرونٹاب فائل میں ترمیم کرنا چاہتے ہیں تو کمانڈ یہ ہوگی:

$سودوکرونٹابٹیسٹ 2۔-اور

یہاں کرون جاب کا نحو ہے جسے کرونٹاب فائل میں شامل کیا جاسکتا ہے۔

# m h dayofmonth month dayofweek کمانڈ۔
* * * * * ifconfig

آپ صارف کی مخصوص ملازمتوں میں دیکھ سکتے ہیں کہ کوئی صارف نام درج نہیں ہے۔

کرونٹاب کمانڈز۔

کرونٹاب کمانڈ کو کرون جابس میں ترمیم ، فہرست اور ہٹانے کے لیے استعمال کیا جاتا ہے۔

  • crontab -e موجودہ صارف کی کرونٹاب فائل میں ترمیم کرنا۔
  • crontab -l کرونٹاب فائل کے مندرجات کو ظاہر کرنا۔
  • crontab -u [صارف نام] کسی دوسرے صارف کی کرونٹاب فائل میں ترمیم کرنا۔
  • crontab -r موجودہ صارف کی کرونٹاب فائل کو ہٹانے کے لیے۔
  • crontab -i موجودہ صارف کی کرونٹاب فائل کو ہٹانے سے پہلے ایک اشارہ ظاہر کرنا۔

کرون کے ساتھ نوکری کا شیڈول۔

کرون کے ساتھ ، آپ ایک مخصوص وقت ، تاریخ اور وقفوں پر کم از کم یونٹ کے ساتھ منٹوں میں نوکری چلا سکتے ہیں ، یعنی آپ ہر منٹ نوکری چلا سکتے ہیں۔

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

مثال:

کرونٹاب فائل میں درج ذیل لائن پیر سے ہفتہ تک ہر ہفتے کے ہر 5 ویں منٹ میں کمانڈ/سکرپٹ کو چلانے کے لیے کرون جاب کو شیڈول کرے گی۔

* /30۔ * * -کمانڈ/سکرپٹ

منٹ

اس فیلڈ میں ، ہم منٹس کی وضاحت کرتے ہیں جب ہم کمانڈ پر عملدرآمد چاہتے ہیں۔ اس کی وضاحت 0 سے 59 تک کی گئی ہے۔ مذکورہ کرونٹاب لائن میں ، */30 کرون جاب کو بتاتا ہے کہ وہ ہر 30 منٹ میں مخصوص کمانڈ/اسکرپٹ چلائے۔

گھنٹے

اس فیلڈ میں ، ہم اوقات کی وضاحت کرتے ہیں جب ہم کمانڈ پر عملدرآمد چاہتے ہیں۔ اس کی وضاحت 0 سے 23 تک کی گئی ہے۔ مذکورہ کرونٹاب لائن میں ، ویلیو 5 کرون جاب کو ہر پانچ گھنٹے میں مخصوص کمانڈ/اسکرپٹ چلانے کے لیے کہتی ہے۔

مہینے کا دن۔

اس فیلڈ میں ، ہم مہینوں کے مخصوص دنوں کی وضاحت کرتے ہیں جب ہم کمانڈ پر عملدرآمد چاہتے ہیں۔ یہ 1 سے 31 تک مخصوص ہے۔ اس فیلڈ میں * کا مطلب ہے ہر روز۔ مذکورہ کرونٹاب لائن میں ، * کرون جاب کو ہر روز مخصوص کمانڈ/اسکرپٹ چلانے کے لیے کہتا ہے۔

سال کا مہینہ

اس فیلڈ میں ، ہم مخصوص مہینوں کی وضاحت کرتے ہیں جب ہم کمانڈ پر عملدرآمد چاہتے ہیں۔ یہ 1 سے 12 تک مخصوص ہے۔ اس فیلڈ میں * ہر ماہ کا مطلب ہے۔ مذکورہ کرونٹاب لائن میں ، * کرون جاب کو ہر ماہ مخصوص کمانڈ/اسکرپٹ چلانے کے لیے کہتا ہے۔

ہفتے کا دن۔

اس فیلڈ میں ، ہم ہفتے کے مخصوص دنوں کی وضاحت کرتے ہیں جب ہم کمانڈ پر عملدرآمد چاہتے ہیں۔ یہ اتوار سے ہفتہ تک 0 سے 6 تک مخصوص ہے (اتوار کے لیے 0 اور ہفتہ کے لیے 6)۔ اس فیلڈ میں * ہفتے میں ہر دن کا مطلب ہے۔ مذکورہ کرونٹاب لائن میں ، * کرون جاب کو بتاتا ہے کہ ہفتے میں ہر روز مخصوص کمانڈ/سکرپٹ چلائیں۔

کرون جابز کی مثالیں۔

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

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

کرون جاب کو ہر 15 منٹ میں چلانے کے لیے شیڈول کرنے کے لیے ، نیچے دی گئی لائن کو کرونٹاب فائل میں شامل کریں:

* /پندرہ * * * *کمانڈ/سکرپٹ

روزانہ صبح 5 بجے کرون جاب چلائیں۔

کرون جاب کو روزانہ صبح 5 بجے چلانے کے لیے شیڈول کرنے کے لیے ، نیچے دی گئی لائن کو کرونٹاب فائل میں شامل کریں:

* * *کمانڈ/سکرپٹ

روزانہ شام 5 بجے کرون جاب چلائیں۔

کرون جاب کو روزانہ شام 5 بجے چلانے کے لیے ، کرونٹاب فائل میں درج ذیل لائن شامل کریں:

17۔ * * *کمانڈ/سکرپٹ

ہر مہینے کے پہلے دن صبح 9 بجے کرون جاب چلائیں۔

ہر مہینے کے پہلے دن صبح 9 بجے کرون جاب چلانے کے لیے ، کرونٹاب فائل میں درج ذیل لائن شامل کریں:

* *کمانڈ/سکرپٹ

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

ہر 15 مارچ کو ہر گھنٹے میں ایک کرون جاب شیڈول کرنے کے لیے ، کرونٹاب فائل میں درج ذیل لائن شامل کریں:

* پندرہ *کمانڈ/سکرپٹ

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

ہر 5 گھنٹے میں ایک کرون جاب شیڈول کرنے کے لیے ، کرونٹاب فائل میں نیچے دی گئی لائن شامل کریں:

* / * * *کمانڈ/سکرپٹ

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

کرون جاب کو ہر 15 منٹ میں چلانے کے لیے شیڈول کرنے کے لیے ، نیچے دی گئی لائن کو کرونٹاب فائل میں شامل کریں:

* /پندرہ * * * *

تاروں کا استعمال کرتے ہوئے۔

نوکری کی وضاحت کے لیے درج ذیل تاریں بھی استعمال کی جا سکتی ہیں۔

  1. our گھنٹہ: ہر گھنٹے میں ایک بار کام انجام دینا ، یعنی ، 0 * * * *
  2. آدھی رات: روزانہ ایک بار کسی کام کو انجام دینا ، یعنی 0 0 * * *
  3. روزانہ: آدھی رات کی طرح
  4. ہفتہ وار: ہر ہفتے میں ایک بار کام کرنا ، یعنی 0 0 * * 0۔
  5. @ماہانہ: ہر مہینے میں ایک بار کام کرنا ، یعنی 0 0 1 * *
  6. سالانہ: ہر سال ایک بار نوکری کرنا ، یعنی 0 0 1 1 *
  7. سالانہ: سالانہ طور پر
  8. b ریبوٹ: ہر اسٹارٹ اپ پر ایک بار کام انجام دینا۔

مثال کے طور پر ، ہر ہفتے اسکرپٹ یا کمانڈ چلانے کے لیے ، کرونٹاب فائل میں اندراج یہ ہوگا:

۔ہفتہ وار کمانڈ/سکرپٹ

پہلے سے طے شدہ کرون ڈائریکٹریز۔

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

  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

مثال کے طور پر ، ہر مہینے میں ایک بار اسکرپٹ پر عملدرآمد کے لیے ، آپ کو اسے /etc/cron.monthly میں رکھنا ہوگا۔

کرون کی نوکریاں دیکھیں۔

موجودہ صارف کے لیے نوکریاں دیکھیں۔

موجودہ صارف کے لیے تمام شیڈول کرون جابس کو دیکھنے کے لیے درج ذیل کمانڈ کا استعمال کریں:

$کرونٹاب-

جڑ استعمال کرنے والوں کے لیے نوکریاں دیکھیں۔

روٹ یوزر کی تمام شیڈول کردہ نوکریاں دیکھنے کے لیے ، ٹرمینل میں درج ذیل کمانڈ جاری کریں:

$کیٹ /وغیرہ/کرونٹاب

آپ کو بطور روٹ صارف لاگ ان ہونا پڑے گا یا کمانڈ کو بطور سوڈو چلانے کی ضرورت ہوگی۔

دوسرے صارفین کے لیے نوکریاں دیکھیں۔

کسی مخصوص صارف کی تمام شیڈول کردہ نوکریاں دیکھنے کے لیے ، ٹرمینل میں درج ذیل کمانڈ کو اصل صارف نام سے تبدیل کریں:

$سودوکرونٹاب <صارف نام> -

اس کمانڈ کو چلانے کے لیے ، آپ کو sudo مراعات کی ضرورت ہوگی۔

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

تمام کرون جابس کو دیکھنے کے لیے جو فی گھنٹہ چلنے کے لیے ترتیب دی گئی ہیں ، ٹرمینل میں درج ذیل کمانڈ جاری کریں:

$ایل ایس - /وغیرہ/cron.hourly

روزانہ کرون کی نوکریاں دیکھیں۔

روزانہ چلانے کے لیے ترتیب دی گئی تمام کرون نوکریاں دیکھنے کے لیے ، ٹرمینل میں درج ذیل کمانڈ جاری کریں:

$ایل ایس - /وغیرہ/cron.daily/

کرون کی ہفتہ وار ملازمتیں دیکھیں۔

ہفتہ وار چلانے کے لیے ترتیب دی گئی تمام کرون جابز کو دیکھنے کے لیے ، ٹرمینل میں درج ذیل کمانڈ جاری کریں:

$ایل ایس - /وغیرہ/cron. ہفتہ وار/

ماہانہ کرون کی نوکریاں دیکھیں۔

ماہانہ چلانے کے لیے ترتیب دی گئی تمام کرون جابز کو دیکھنے کے لیے ، ٹرمینل میں درج ذیل کمانڈ جاری کریں:

$ایل ایس - /وغیرہ/ماہانہ/

تمام کرون جابز کا بیک اپ لیں۔

یہ سفارش کی جاتی ہے کہ تمام کرون جابز کا بیک اپ ایک فائل میں رکھیں تاکہ آپ حذف ہونے کی صورت میں ٹھیک ہو سکیں۔ تمام موجودہ نوکریوں کا بیک اپ بنانے کے لیے ، کرونٹاب -ایل کی آؤٹ پٹ کو فائل میں ری ڈائریکٹ کرنے کے لیے ری ڈائریکشن آپریٹر استعمال کریں۔

$کرونٹاب- >backup_cron.txt

تمام شیڈول شدہ کرون جابز کو ہٹانا۔

تمام شیڈول کرون جابز کو ہٹانے کے لیے ، -r پرچم مندرجہ ذیل کے طور پر استعمال کریں:

$کرونٹاب

کرون اجازت۔

ہم دو فائلوں کے ذریعے کرونٹاب کمانڈ تک رسائی کو محدود کر سکتے ہیں: / etc/cron.allow اور/etc/cron.deny۔

  • /etc/cron.allow - صارفین کو شامل کریں (ایک فی لائن) جنہیں آپ کرونٹاب کمانڈز تک رسائی کی اجازت دینا چاہتے ہیں۔ یہ صارفین شیڈول جابس چلا سکتے ہیں۔
  • /etc/cron.deny - صارفین کو شامل کریں (ایک فی لائن) جنہیں آپ کرونٹاب کمانڈز تک رسائی سے انکار کرنا چاہتے ہیں۔ یہ صارفین شیڈول جاب نہیں چلا سکتے۔

کرونٹاب سنٹیکس جنریٹرز۔

کچھ ویب سائٹیں ہیں جو کرونٹابس کے لیے نحو پیدا کرنے کی اجازت دیتی ہیں۔ یہ ویب سائٹس نحو کو یاد کیے بغیر کرونٹاب اظہار پیدا کرنا آسان بناتی ہیں۔ اگرچہ نحو جنریٹرز کے لیے مختلف ویب سائٹس دستیاب ہیں۔ crontabgenerator.com ، crontab-generator.org ، اور cronmaker.com . جس کو میں زیادہ تر ترجیح دیتا ہوں اور مددگار پایا وہ ہے۔ crontab.guru . صارف کے ان پٹ کی بنیاد پر ، یہ ایک کرونٹاب اظہار تیار کرتا ہے جسے آپ کرونٹاب فائل میں کاپی پیسٹ کرسکتے ہیں۔

نتیجہ

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