اتقان المهمة Cron و Automating Server المهام

المادة التي كتبها:
  • مقالات مميزة
  • تم التحديث: Sep 06 ، 2017

تم تصميم استضافة الويب ليكون سهلاً ومباشرًا ومثاليًا للمحترفين المتنقلين وببساطة لا يمكن تكريسه كل ساعة من كل يوم إدارة خادم الاستضافة الخاص بهم والمهام المرتبطة بها.

ولهذه الغاية ، يقدم كل خادم تقريبًا مستندًا إلى Unix أو Linux مدير مهام تلقائي يعرف باسم "كرون الوظيفةأو "Crontab".

تشبه أداة البرنامج هذه جدولة المهام في Microsoft Windows ، حيث يمكن أن يقال لها أن تفعل أشياء معينة في أوقات معينة ، مما يوفر على المستخدم القيام بهذه المهام يدويًا. هذا مهم بشكل خاص عندما يعتبر المرء أن العديد من إجراءات الصيانة الروتينية للخادم والنسخ الاحتياطي والاتصالات قد تستغرق ساعات وساعات لإكمالها. يرغب معظم الناس ببساطة في العودة إلى ديارهم بعد قضاء يوم في المكتب والاسترخاء ، بدلاً من قضاء المساء في نسخ الملفات وإدارة جهات الاتصال.

هؤلاء الأشخاص محظوظون ، حيث يمكن جدولة كل مهمة على أساس يومي أو أسبوعي أو شهري - أو حتى أكثر من ذلك ، في بعض الحالات ، ويمكن تقديم إرشادات محددة إلى الخادم داخل الأداة المساعدة Crontab حول كيفية تنفيذ المهمة ، وكيفية معرفة متى تكون كاملة ، وماذا تفعل عندما تكون المهمة الحالية قد انتهت بالفعل.

سيكون المستخدمون قادرين على الاسترخاء بينما يقوم الخادم الخاص بهم بكل الأحمال الثقيلة لساعات ؛ أو يمكنهم ببساطة جدولة العمل المراد إكماله أثناء عملهم بجد في مكاتبهم. نظرًا لأنها آلية ، يمكن أن تحدث مهمة Cron في أي ساعة تقريبًا من اليوم.

تعلم معرفة الوقت باستخدام تنسيق Cron Job

وظيفة Cron ليست بالأمر السهل إتقانها ؛ في الواقع ، تعتبر على نطاق واسع واحدة من التكوينات الأكثر تقدما المتاحة على مستوى لينكس or يونكس قاعدة بيانات للانترنت. يرجع هذا جزئيا إلى أن اللغة المستخدمة في برمجة هذه الوظائف قديمة إلى حد كبير ، وفي بعض الحالات ، إلى الوراء تمامًا. عندما يتعلق الأمر بإخبار وقت معين عن وظيفة Cron أو Cron تبعاً لذلك ، فإن الأمور بالتأكيد ستكون عكسية ومقلوبة ومربكة قليلاً.

الشكل الخاص بإخبار الوقت عن طريق مهمة Cron هو:

MINUTE HOUR DAY-OF-MONTH MONTH OF DAY OF WEEK COMMAND

كل ذلك عبارة عن سطر واحد ، والزوج والأمر جنباً إلى جنب في انكماش واحد موحد. يكفي جعل معظم المطورين ومشغلي الخوادم يفشلون ، وفي الواقع ، كثير منهم يفعلون ذلك حتى يتعطلوا لتطوير وظيفة Cron فعالة.

من المهم أن نلاحظ أن كل جانب من جوانب وقت وظيفة Cron هو عدد ؛ لا توجد أسماء لشهر أسماء اليوم ، أو أي كلمات أخرى تستخدم طوال تطوير الوقت الذي يجب أن يتم تنفيذ المهمة فيه.

لذلك ، دعونا نقوم بتعيين وظيفة Cron إلى 10: 30 am في يوليو 7th من أجل التعود على كيفية ظهور وقت عمل Cron عندما يتحول إلى أرقام صارمة.

30 10 07 07 *

يوضح المثال أعلاه أنه يجب إكمال المهمة في الدقيقة 30th من الساعة العاشرة في اليوم السابع من الشهر السابع. كل الأرقام مكونة من رقمين ، حتى عندما يكون الشهر أو اليوم مجرد رقم واحد. من المهم تذكر ذلك ، لأن رقمًا واحدًا غالبًا ما يتسبب في كون مهمة Cron غير صالحة ولن يتم تنفيذها أبدًا. في نهاية هيكل الاشتراكات ، تشير العلامة النجمية إلى أنه ينبغي تنفيذ المهمة في أي يوم من أيام الأسبوع. هذا أمر مهم ، لأن تعيينه على 03 ليوم الأربعاء سيعني أن المهمة لن يتم تنفيذها إلا في يوليو 7th إذا كان ذلك اليوم يوم الثلاثاء. من المحتمل أن يحدث هذا مرة واحدة كل سبع أو ثماني سنوات ، وهو أمر قليل الامتصاص لمعظم المطورين للنظر فيه.

من الاعتبارات المهمة الأخرى التي يجب اتخاذها عند إنشاء مهمة Cron أن تنسيق الساعة هو وقت عسكري لساعة 24 وليس زمنًا مدنيًا مدته ساعة 12. لتغيير وقت مهمة Cron إلى 10 ، سيتم تغيير الساعة إلى 22 بدلاً من 10 الحالي.

أمثلة مهمة كرون

أخيرًا ، إذا أراد المستخدم مجرد إكمال مهمة على أساس يومي أو شهري أو حتى سنوي ، يمكنه تخطي عملية تعيين وقت محدد تمامًا. بدلاً من ذلك ، توفر عملية مهمة Cron ببساطة استخدام المتغيرات التي تحدد متى يتم إنجاز مهمة على هذه الفواصل الزمنية المتكررة. وتشمل هذه:

  • @اليومي
  • @شهريا
  • @سنوي

نظرًا لأنه لا يمكن التحكم في الوقت وتحديده بدقة باستخدام الساعات والدقائق ، فستحدث هذه المهام في منتصف الليل تمامًا ، وفقًا للوقت الداخلي للخادم ، في الفترة الزمنية المطلوبة. هذا يعني أن الفاصل الزمني الشهري سيحدث في منتصف الليل تمامًا في اليوم الأول من كل شهر. سيحدث الفاصل الزمنيyear في منتصف الليل بالضبط في اليوم الأول من كل عام ؛ سيحدث الفاصل الزمنيdaily في منتصف الليل بالضبط كل يوم واحد من السنة.

وهذا أسهل بكثير من تحديد تاريخ معين ، ووقت ، ويوم من الأسبوع ، ولكن بعض المهام التي يتم تنفيذها في منتصف الليل في اليوم الأول من الشهر أو السنة قد يكون لها بعض العوائق لبعض العملاء. احتفظ دائمًا باحتياجات كل من المسؤولين وزوار الموقع في الاعتبار عند جدولة المهام التي تحدث في منتصف الليل تمامًا.

فهم المتغير "COMMAND" وماذا تفعل به

كما يتضح من المثال أعلاه ، فإن إنشاء وظيفة Cron فعلية أمر سهل نسبيًا. يجب تحديد التاريخ أولاً ثم يتم تحديد وظيفة وظيفة Cron فورًا بعد ذلك. يمكن أن تكون هذه الوظيفة أي شيء حرفيًا ، بما في ذلك تشغيل برنامج نصي PHP أو تشغيل برنامج نصي احتياطي مخصص يخزّن ملفات وبيانات الخادم في ملف بعيد أو محلي. للتوضيح ، سنبني على المثال الذي تم استخدامه سابقًا ونطلب من وظيفة Cron تشغيل نص PHP في يوليو 7th على 10: 30 في الصباح. سيطلق على برنامج PHP النصي هذا "backup.php" ، وسنفترض أن ملف PHP هو برنامج نسخ احتياطي كامل يقوم بجمع ملفات الموقع وضغطها وتخزينها في السابع من الشهر عندما يُطلب من الخادم القيام بذلك. إليك ما يبدو عليه:

30 10 07 07 * http://your-domain-name.com/backup-scripts/backup.php

عند إدخال مهمة Cron هذه في قائمة علامات تبويب خادم Cron ، سيتم تنفيذها تلقائيًا في 10: 30 في كل شهر 7th من يوليو من كل عام. سيتم تشغيل البرنامج النصي للنسخ الاحتياطي لـ PHP الموجود في دليل "برامج النسخ الاحتياطي" ، وهنا تعمل العبقرية الحقيقية لإعداد وظيفة Cron.

بدلاً من طلب أوامر متقدمة لمستخدميها لتنفيذ أشياء مثل النسخ الاحتياطي للموقع والذاكرة المؤقتة ، فإنه ببساطة يمنح المستخدمين القدرة على تنفيذ البرامج النصية الموجودة في فترة زمنية محددة أو في تاريخ محدد في وقت محدد. هذا يعني عدم الحاجة إلى معرفة برمجة متقدمة تتجاوز ما يعرفه المستخدم بالفعل. PHP قادر تمامًا على نسخ ملفات الموقع ، كما هو الحال في ملفات البرمجة واللغات الأكثر تقدمًا والتي قد يطوّرها المستخدم الأكثر تطوّرًا لخادم Linux.

يمكن استخدام هذا الإعداد البسيط للقيام بأي شيء افتراضيًا ، طالما أن النص المكتوب مسبقًا يوفر تنفيذ هذه الإجراءات بشكل مستقل عن إدخال المستخدم. هذا يعني أن أي برنامج نصي يتم تنفيذه بواسطة مهمة Cron ضمن علامة التبويب Cron يجب أن يكون آليًا تمامًا وقادرًا على الأداء بمفرده. على سبيل المثال ، سيكون من المستحيل (وبكل بساطة غير منطقية) أن تخبر وظيفة Cron بتنفيذ ملف WordPress أو ملف القالب كل يوم في نفس الوقت. ببساطة لا توجد أي إجراءات أو عمليات آلية محددة ، وفي حين أن مهمة Cron ستنفذ الملف بالتأكيد ، فإنه لن يفعل شيئًا ، وسيظل ثابتًا حتى يتم إدخال إدخال المستخدم بطريقة أخرى.

لهذا السبب ، في حالة تشفير أو تنزيل البرامج النصية الاحتياطية أو الآخرين للعمل مع وظائف Cron ، تأكد دائمًا من أنها تتطلب إدخال المستخدم تمامًا لتنفيذ وظائفهم بنجاح. يجب إقران جدولة المهام التلقائية مع عملية آلية داخل الملف الذي ينفذه. لا توجد استثناءات لهذه القاعدة.

اتقان ملف التبويب Cron الكلي على خادم نموذجي

كل مهمة محددة من Cron المحددة لتنفيذها تقع ضمن ملف أكبر يعرف باسم Cron tab. تحتوي بعض الخوادم على علامات تبويب Cron متعددة لأنواع متعددة من التطبيقات والمدخلات التلقائية ، ولكن هذا نادر ومخصص بشكل كبير لمعظم مشغلي وخوادم الخادم المتقدم. يمكن لأولئك الذين لديهم ملف Cron tab واحد فقط استخدام الأوامر أدناه لتحرير الملف أو حذفه أو عرضه بالكامل ، مع سرد كل من المهام التلقائية المحددة الخاصة بهم للعرض داخل الملف.

crontab -r

يزيل هذا الأمر (وبالتالي "r") أو يحذف ملف علامة تبويب Cron بالكامل نفسه. سيؤدي ذلك إلى تطهيرها بكفاءة من جميع الأوامر والبرامج النصية الآلية واستعادتها إلى ملف فارغ يمكن إعادة بنائه. هذا خيار مناسب لأولئك الذين تمكنوا من تلف الملف أو بطريقة خاطئة المهام والأوقات. في بعض الأحيان ، من الأسهل البدء من جديد.

-e كرونتاب

في هذه الحالة ، يشير "e" إلى "تحرير". يمكن للمستخدمين الذين يرغبون في تحرير الوظائف الموضحة في علامة التبويب Cron بدلاً من حذف الملف تمامًا استخدام هذا الأمر ليتم نقلك إلى محرر سطر الأوامر الذي سيسمح لهم إضافة مهام جديدة ، أو إزالة المهام القديمة ، أو تغيير أوقات الجدولة السارية لكل مهمة من وظائف Cron المدرجة في وثيقة علامة التبويب Cron.

crontab -l

في هذه الحالة ، من السهل أن نتذكر من خلال ربط "L" مع "نظرة". يتيح هذا الأمر لمسؤول الخادم عرض المحتويات الكاملة لملف علامة تبويب Cron الخاص بهم دون إزالتها من الخادم تمامًا وبدون إمكانية تحرير المحتويات. يعد هذا العرض للقراءة فقط لمحتوى علامة تبويب Cron مثالياً لتذكر المهام المجدولة في أي وقت ، وللتحقق من سلامة الملف نفسه.

لماذا من المهم السيطرة على وظيفة Cron في ملفات أتمتة علامة تبويب Cron

بشكل عام ، الشيء الوحيد التلقائي عن الخادم هو دوران القرص الثابت الخاص به وأداء ميزات الأجهزة الخاصة به. أبعد من ذلك ، على الرغم من ذلك ، يجب على الخادم أن يكون مدربًا ومدروسًا للقيام بمهام روتينية وغير عادية تذهب إلى أبعد من مجرد عرض لوحة تحكم البرنامج أو ترقية تثبيت PHP أو Perl الذي وضعه المستخدم على القرص الثابت.

من المهم أن تتذكر أن إحدى الوظائف الأساسية التي يمكن للخادم تنفيذها على أساس منتظم هي إنشاء نسخة احتياطية للموقع من البيانات والإعدادات. لا توجد أي طريقة تقريبًا لأتمتة هذه العملية بدون وظيفة Cron ، نظرًا لطبيعة الإنترنت وجميع الزوار الضارين الذين يمرون عبر موقع يوميًا ، فقد يؤدي الفشل في أتمتة هذه العملية بشكل يومي أو أسبوعي إلى حدوث وفقدان البيانات الكارثية.

علاوة على ذلك ، على الرغم من ذلك ، هناك عدد من المهام التي يجب أن تكون آلية باستخدام عملية مهمة Cron. تتضمن هذه المهام تطهير أي ذاكرة التخزين المؤقت للموقع التي قد تعرض الصور القديمة أو المحتوى المطبوع لزوار الموقع ؛ ويتضمن أيضًا حذف الملفات القديمة وتنظيف الدلائل والصور القديمة والتأكد من أن كل شيء مخزّن على محرك القرص الثابت للخادم حديث وغير تالف.

تمامًا مثل جهاز كمبيوتر شخصي سليم يقوم تلقائيًا بجدولة صيانة القرص ، وفحص الفيروسات والبرامج الضارة ، وتحديثات البرامج ، وحذف الملفات ، يجب تهيئة الخادم السليم للعناية بنفسه والبقاء في وضع جيد. خلاف ذلك ، يصبح عرضة للحوادث ، ومحاولات القرصنة ، وفقدان البيانات التي من شأنها أن تؤدي إلى فقدان الأرباح ، والإعلان ، وإنشاء المحتوى ، وحتى وضع ترتيب محرك البحث.

سهلة التعلم وأسهل للنشر

يعد إنشاء مهمة Cron ضمن علامة التبويب Cron القياسية أحد أسهل الأمور التي يمكن لمسؤول الخادم القيام بها.

تكمن العملية في سطر الأوامر القياسي وتقسم كل جزء من الوقت إلى رمز مكون من رقمين.

نظرًا لأنها لا تتطلب معرفة إضافية بأي لغة برمجة جديدة من أجل أتمتة المهام ، فإن الخدمة تعتمد بشكل أساسي على معرفة عمليات البرمجة والخوادم الموجودة التي يمتلكها المشرف بالفعل. في هذه الحالة ، ببساطة لا يوجد سبب لعدم البدء بأتمتة وظائف الخوادم الأساسية وضمان سلامة بيانات الموقع وعملياته.

عن جيري لو

مؤسس WebHostingSecretReveals.net (WHSR) - مراجعة استضافة موثوق بها ويستخدمها مستخدمو 100,000. خبرة تزيد عن 15 في مجال استضافة المواقع والتسويق التابع لها وكبار المسئولين الاقتصاديين. مساهم في ProBlogger.net ، Business.com ، SocialMediaToday.com ، وأكثر من ذلك.