قم بتشغيل وظيفة كرون كل دقيقة

Run Cron Job Every Minute



إذا كنت ترغب في تشغيل برنامج أو نص برمجي في الخلفية على Linux ، فإن وظيفة cron مهمة جدًا. بمساعدة وظائف cron ، يمكنك تنفيذ برنامج أو نص في الخلفية بعد فترة زمنية معينة.

دعنا نلقي نظرة على بعض الأمثلة الواقعية لوظائف cron.







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

هناك العديد من الاستخدامات الأخرى لوظائف cron في Linux.



في هذه المقالة ، سأوضح لك كيفية تشغيل وظائف cron كل دقيقة على Linux. سأستخدم Debian 9 Stretch في العرض التوضيحي. ولكن يمكنك استخدام أي توزيعة Linux حديثة من اختيارك. هيا بنا نبدأ.



على لينكس ، ليس عليك أن تكون كذلك جذر من أجل تشغيل وظائف كرون. يمكنك تشغيل مهام كرون كأي مستخدم. يمكن لكل مستخدم على Linux استخدام ملف كرونتاب ملف لتشغيل مجموعة مهام cron الخاصة بهم.





بشكل افتراضي ، لا يمتلك المستخدم ملف كرونتاب ملف على لينكس. يمكنك إنشاء ملف كرونتاب ملف بالأمر التالي:

$كرونتاب



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

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

تركيب تشغيل أمر كل دقيقة:

بناء جملة كرونتاب الملف كالتالي:

دقيقة ساعة يوم من شهر شهر يوم أمر أسبوع تشغيل

هنا،

  • دقيقة يمكن ان يكون 0 إلى 59 .
  • ساعة يمكن أن يكون أيضًا 0 إلى 59 .
  • يوم من الشهر يمكن ان يكون 1 إلى 31 .
  • شهر يمكن ان يكون 1 إلى 12 .
  • يوم من الأسبوع يمكن ان يكون 0 إلى 7 . 0 و 7 يعني الأحد ، 1 يعني الاثنين ، 2 يعني الثلاثاء وما إلى ذلك.

لتشغيل القيادة أمر كل دقيقة ، يجب أن تكتبه في ملف كرونتاب ملف على النحو التالي:

* * * * *القيادة

تشغيل وظيفة Crob كل دقيقة:

الآن بعد أن عرفنا النظريات ، دعنا نضيف نصًا بسيطًا جهاز ضبط الوقت الى كرونتاب ملف ومعرفة كيفية إدارته.

في ال جهاز ضبط الوقت البرنامج النصي ، لدي فقط سطور الرموز التالية. كل ما يفعله هو إنشاء ملف جديد /home/shovon/bin/timer.log (إذا لم يكن موجودًا بالفعل) ويقوم بإلحاق إخراج الأمر date به.

الآن دعونا نضيف البرنامج النصي إلى كرونتاب واتركه يعمل كل دقيقة بالسطر التالي:

* * * * * /الصفحة الرئيسية/shovon/صباحا/جهاز ضبط الوقت

بمجرد حفظ ملف كرونتاب ملف والخروج من محرر النصوص الجديد كرونتاب يجب تثبيت الملف.

بعد مرور دقيقة ، يكون الملف الجديد timer.log تم إنشاؤه في الدليل المطلوب كما ترى في القسم المحدد من لقطة الشاشة أدناه.

من timer.log ملف السجل ، فمن الواضح أن البرنامج النصي جهاز ضبط الوقت يعمل كل دقيقة.

اصطياد الأخطاء من وظائف Cron:

لالتقاط الأخطاء من مهمة cron ، يمكنك إرسال الأخطاء إلى ملف error.log ملف والمخرجات العادية إلى access.log ملف على سبيل المثال. بالطبع يمكنك تسمية الملفات بأي شيء تريده.

لإثبات ذلك ، قمت بتعديل البرنامج النصي الخاص بي جهاز ضبط الوقت قليلا. الآن يتم إرسال الأخطاء إلى 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 يثبت الملف أن وظيفة cron لا تعمل قبل انتهاء تشغيل وظيفة cron السابقة. كما ترون ، تم تشغيله في 01:32:01 وفي المرة التالية كان من المفترض أن يتم تشغيله في 01:33:01 ، لكنه لم يحدث. بدلاً من ذلك ، تم تشغيله في تمام الساعة 01:35:01 ، بعد حوالي 3 دقائق.

تنظيم مخرجات مهمة Cron من أجل تصحيح الأخطاء بسهولة:

يمكنك تنسيق المخرجات بشكل جيد لتسهيل تصحيح أخطاء مهمة cron.

ويرد مثال على كيفية القيام بذلك في النص التالي.

كما ترى ، تتم طباعة المخرجات والأخطاء ورسائل النجاح بشكل جيد في ملف السجل.

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