انڈروئد

کرونٹاب کے ساتھ کرون ملازمتوں کا شیڈول کرنا

اجمل 40 دقيقة للشيخ عبدالباسط عبد الصمد تلاوات مختارة Ù…Ù

اجمل 40 دقيقة للشيخ عبدالباسط عبد الصمد تلاوات مختارة Ù…Ù

فہرست کا خانہ:

Anonim

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

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

کرون کی ملازمتیں ایک منٹ ، گھنٹہ ، مہینے کے دن ، مہینے ، ہفتے کے دن یا ان میں سے کسی مرکب کے ذریعہ چلانے کا شیڈول ہوسکتی ہیں۔

کرونٹاب فائل کیا ہے؟

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

صارف کرونٹاب فائلیں صارف کے نام سے محفوظ کی جاتی ہیں ، اور آپریٹنگ سسٹم کے ذریعہ ان کا مقام مختلف ہوتا ہے۔ ریڈ ہیٹ پر مبنی نظام جیسے سینٹوس میں ، کرونٹاب فائلز کو /var/spool/cron ڈائریکٹری میں محفوظ کیا جاتا ہے جبکہ ڈیبیان اور اوبنٹو فائلوں کو /var/spool/cron/crontabs ڈائریکٹری میں محفوظ کیا جاتا ہے۔

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

/etc/crontab اور /etc/cron.d ڈائرکٹری کے اندر موجود فائلیں سسٹم سے وابستہ کرونٹاب فائلیں ہیں جن کو صرف سسٹم ایڈمنسٹریٹر ترمیم کرسکتے ہیں۔

زیادہ تر لینکس کی تقسیم میں آپ / /etc/cron.{hourly, daily, weekly, monthly} اندر بھی اسکرپٹ رکھ سکتے ہیں۔ hour/day/week/month ، /etc/cron.{hourly, daily, weekly, monthly} ڈائریکٹریز اور اسکرپٹ ہر hour/day/week/month عمل میں آئیں گی۔

کرونٹاب سنٹیکس اور آپریٹرز

صارف کرونٹاب فائل میں ہر لائن میں چھ فیلڈز شامل ہوتے ہیں جس کے بعد کمانڈ چلائی جاسکتی ہے۔

* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)

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

  • * - نجمہ آپریٹر کا مطلب ہے کوئی قدر یا ہمیشہ۔ اگر آپ کے پاس قیامت کے میدان میں نجمہ کی علامت ہے تو ، اس کا مطلب ہے کہ یہ کام ہر گھنٹے میں سرانجام دیا جائے گا۔ , -کوما آپریٹر آپ کو تکرار کے ل values ​​اقدار کی فہرست متعین کرنے کی اجازت دیتا ہے۔ مثال کے طور پر ، اگر آپ کے پاس قیامت کے میدان میں 1, 3, 5 ہے ، تو یہ کام صبح 1 بجے ، صبح 3 بجے اور صبح 5 بجے چلے گا۔ - ہائفن آپریٹر آپ کو اقدار کی ایک حد متعین کرنے کی اجازت دیتا ہے۔ اگر آپ کے پاس ہفتے کے دن کے فیلڈ میں 1-5 ہے تو ، کام ہر ہفتے کے دن (پیر سے جمعہ تک) چلے گا۔ / -سلیش آپریٹر آپ کو وہ اقدار بتانے کی اجازت دیتا ہے جو ان کے مابین کسی خاص وقفے پر دہرائی جائیں۔ مثال کے طور پر ، اگر آپ قیامت کے میدان میں */4 ہیں ، تو اس کا مطلب یہ ہے کہ کارروائی ہر چار گھنٹے میں کی جائے گی۔ یہ 0, 4, 8, 12, 16, 20 وضاحت کرنے کے 0, 4, 8, 12, 16, 20 ۔ سلیش آپریٹر سے پہلے نجمہ کی بجائے ، آپ اقدار کی ایک رینج بھی استعمال کرسکتے ہیں ، 1-30/10 کا مطلب 1, 11, 21 ۔

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

سسٹم میں بھرے کرونٹاب فائلوں کا نحو صارف کے کرنٹاب سے تھوڑا مختلف ہے۔ اس میں صارف کا ایک اضافی لازمی فیلڈ شامل ہے جس میں یہ واضح ہوتا ہے کہ کون سا صارف کرون کام چلائے گا۔

* * * * * command(s) * * * * * command(s)

پیش وضاحتی میکروس

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

  • @yearly (یا @annually ) - سال میں ایک بار یکم جنوری کی آدھی رات (صبح 12 بجے) کو ایک مخصوص کام چلائیں۔ 0 0 1 1 * برابر۔ @monthly - مہینے کے پہلے دن آدھی رات کو ایک مہینہ میں ایک بار ایک مخصوص کام چلائیں۔ 0 0 1 * * برابر۔ @weekly - ہفتے میں ایک بار اتوار کی آدھی رات کو ایک مخصوص کام چلائیں۔ 0 0 * * 0 برابر۔ @daily - دن میں ایک بار آدھی رات کو ایک مخصوص کام چلائیں۔ 0 0 * * * برابر۔ @hourly - گھنٹے کے آغاز پر ایک گھنٹہ میں ایک بار مخصوص کام چلائیں۔ 0 * * * * برابر۔ @reboot - سسٹم کے آغاز پر (بوٹ ٹائم) مخصوص کام چلائیں۔

لینکس کرونٹاب کمانڈ

کرونٹاب کمانڈ آپ کو ترمیم کے ل cr کسی کرونٹاب فائل کو انسٹال کرنے یا کھولنے کی سہولت دیتا ہے۔

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

  • crontab -e - crontab فائل میں ترمیم کریں ، یا اگر پہلے سے موجود نہیں ہے تو ایک بنائیں۔ crontab -l - crontab فائل مشمولات ڈسپلے کریں۔ crontab -r - آپ کی موجودہ crontab فائل کو ہٹا دیں. crontab -i - اپنی موجودہ crontab فائل کو ہٹانے سے قبل ایک اشارے کے ساتھ ہٹا دیں۔ crontab -u - دوسرے استعمال کروٹاب فائل میں ترمیم کریں۔ سسٹم ایڈمنسٹریٹر کی مراعات کی ضرورت ہے۔

crontab کمانڈ VISUAL یا EDITOR ماحولیاتی متغیروں کے ذریعہ مخصوص کردہ ایڈیٹر کا استعمال کرتے ہوئے crontab فائل کھولتا ہے۔

کرونٹاب متغیرات

کرون ڈیمون خود بخود کئی ماحولیاتی متغیرات طے کرتا ہے۔

  • پہلے سے طے شدہ راستہ PATH=/usr/bin:/bin ۔ اگر آپ جس کمانڈ کو فون کررہے ہیں وہ کرون کے مخصوص راستے میں موجود ہے تو ، آپ کمانڈ کا مطلق راستہ استعمال کرسکتے ہیں یا کرون $PATH متغیر کو تبدیل کرسکتے ہیں۔ آپ واضح طور پر شامل نہیں کرسکتے ہیں :$PATH as :$PATH جیسا کہ آپ باقاعدہ اسکرپٹ کے ساتھ کرتے ہیں۔ پہلے سے طے شدہ شیل /bin/sh سیٹ ہے۔ آپ SHELL متغیر کو تبدیل کرکے ایک مختلف شیل مرتب کرسکتے ہیں۔ SHELL صارف کی ہوم ڈائرکٹری سے کمانڈ کی درخواست کرتا ہے۔ HOME متغیر کو کرونٹاب میں ترتیبات کے ذریعہ زیر کیا جاسکتا ہے۔ ای میل کی اطلاع crontab کے مالک کو بھیجی گئی ہے۔ پہلے سے طے شدہ رویے کو MAILTO ، آپ ای میل کے ماحولیاتی متغیر کو ان تمام ای میل پتوں کی فہرست (کوما سے الگ کیا ہوا) کے ساتھ استعمال کرسکتے ہیں جو آپ ای میل کی اطلاعات وصول کرنا چاہتے ہیں۔ اگر MAILTO کی تعریف کی گئی ہے لیکن خالی ہے ( MAILTO="" ) ، کوئی میل نہیں بھیجی جاتی ہے۔

کرونٹاب پابندیاں

سسٹم ایڈمنسٹریٹر کنٹرول کرسکتے ہیں کہ صارفین /etc/cron.deny اور / /etc/cron.allow . /etc/cron.allow فائلوں کا استعمال کرکے crontab کمانڈ تک رسائی حاصل کرسکتے ہیں۔ فائلوں میں صارف ناموں کی ایک فہرست ، ہر صارف کا نام شامل ہے۔

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

اگر /etc/cron.allow فائل موجود ہے تو صرف وہ صارفین جو اس فائل میں درج ہیں وہ crontab کمانڈ استعمال کرسکتے ہیں۔

اگر دونوں میں سے کوئی فائل موجود نہیں ہے تو ، صرف انتظامی استحقاق رکھنے والے صارف crontab کمانڈ استعمال کرسکتے ہیں۔

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

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

  • پیر سے جمعہ تک ہر دن 15:00 بجے کمانڈ چلائیں:

    0 15 * * 1-5 command

    ہر 5 منٹ میں ایک اسکرپٹ چلائیں اور معیاری آؤٹ پٹ کو dev null پر ری ڈائریکٹ کریں ، صرف مخصوص غلطی مخصوص ای میل پتے پر بھیجی جائے گی۔

    [email protected] */5 * * * * /path/to/script.sh > /dev/null

    ہر پیر کو && پہر 3 بجے دو کمانڈ چلائیں (آپریٹر && کمانڈز کے درمیان استعمال کریں):

    0 15 * * Mon command1 && command2

    ہر 2 منٹ میں پی ایچ پی کی اسکرپٹ چلائیں اور آؤٹ پٹ کو فائل میں لکھیں۔

    */2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log

    صبح 8 بجے سے شام 4 بجے تک ، ہر روز ، ہر گھنٹے ، گھنٹے پر ، اسکرپٹ چلائیں۔

    00 08-16 * * * /path/to/script.sh

    ہر مہینے کے پہلے پیر کو صبح سات بجے اسکرپٹ چلائیں

    0 7 1-7 * 1 /path/to/script.sh

    ہر مہینے کی یکم اور 15 تاریخ کو رات 9: 15 بجے اسکرپٹ چلائیں:

    15 9 1, 15 * * /path/to/script.sh

    حسب ضرورت HOME ، PATH ، SHELL اور MAILTO متغیرات مرتب کریں اور ہر منٹ میں کمانڈ چلائیں۔

    HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command

نتیجہ اخذ کرنا

آپ نے یہ سیکھ لیا ہے کہ ایک مخصوص تاریخ اور وقت پر کرون ملازمتیں اور شیڈول ٹاسک کیسے بنائیں گے۔

اگر آپ کے ذہن میں کوئی سوال ہے تو بلا جھجھک۔

cron crontab ٹرمینل