Cron هي خدمة جدولة المهام على أساس الوقت الموجودة في أنظمة التشغيل المشابهة لنظام Unix. يقوم المستخدمون بجدولة المهام (الأوامر أو البرامج النصية) للتشغيل بشكل دوري في أوقات أو تواريخ أو فواصل زمنية محددة.
الأصل والتاريخ المبكر لكرون
يعود أول تطبيق لـ cron إلى الإصدار 7 Unix. مصطلح "كرون" يأتي من الكلمة اليونانية للوقت، "كرونوس". كان هذا الإصدار من يونكس، الذي صدر في عام 1979، يحتوي على برنامج كرون بسيط ينفذ المهام على فترات زمنية محددة. تم توسيع وظائف Cron لاحقًا بواسطة Paul Vixie في عام 1987. هذا الإصدار، المعروف باسم Vixie Cron، هو الإصدار الأكثر شيوعًا اليوم، وهو الإصدار الذي يشار إليه عمومًا عندما يذكر الناس "Cron".
التوسع في مفهوم كرون
يسمح Cron للمستخدمين بأتمتة صيانة النظام أو إدارته، على الرغم من أن طبيعته للأغراض العامة تجعله مفيدًا لأشياء مثل تنزيل الملفات من الإنترنت وتنزيل البريد الإلكتروني على فترات زمنية منتظمة. تشبه بيئة cron وضع الحماية الذي يتم فيه تشغيل وظائف cron خارج بيئة Shell العادية.
يمكن لكل مستخدم أن يكون لديه crontab الخاص به، وعلى الرغم من أن هذه الملفات موجودة في /var/spool/، إلا أنها ليست مخصصة لتحريرها مباشرة. يمكن تقسيم بناء جملة تعبيرات cron إلى نوعين رئيسيين من بناء الجملة: بناء جملة Unix cron، وبناء جملة أكثر تعقيدًا يُعرف باسم بناء جملة تعبير cron أو بناء جملة Quartz cron.
الهيكل الداخلي للكرون وكيف يعمل
يعمل Cron على أساس ملف تكوين بسيط ولكنه قوي يُعرف باسم ملف "crontab". يحتوي هذا الملف على سطر واحد لكل مهمة يتم تشغيلها، ويتكون من خمسة حقول للوقت والتاريخ، متبوعة بأمر ليتم تشغيله في أوقات محددة.
تمثل الحقول الخمسة:
- الدقائق بعد الساعة (0 – 59)
- عدد الساعات في اليوم (0 – 23)
- أيام الشهر (1 - 31)
- أشهر السنة (1 - 12)
- أيام الأسبوع (0 - 7، حيث 0 و 7 يوم الأحد)
يحتوي حقل الأمر على المهمة التي سيتم تشغيلها في الأوقات المحددة في الحقول الخمسة الأولى.
الميزات الرئيسية لكرون
تشمل الميزات الأساسية لـ Cron ما يلي:
- يسمح بتشغيل المهام تلقائيًا في الخلفية على فترات منتظمة.
- يوفر منصة مرنة لجدولة المهام (البرامج النصية أو الأوامر) مع مجموعة متنوعة من الوحدات الزمنية.
- يمكن لكل مستخدم أن يكون لديه ملف crontab الخاص به.
- يمكن جدولة وظائف Cron للتشغيل بالدقيقة والساعة ويوم الأسبوع ويوم الشهر وشهر السنة.
- يوفر Cron طريقة بسيطة وفعالة لأتمتة مهام النظام المختلفة.
أنواع الكرون
يمكن تصنيف وظائف كرون بشكل عام على النحو التالي:
يكتب | وصف |
---|---|
اعادة التشغيل | يعمل مرة واحدة عند بدء التشغيل. |
أناكرون | يعمل على فترات زمنية محددة في أيام. |
نظام كرون | تم تخزينها في /etc/crontab وفي الدليل /etc/cron.d/، وهي مخصصة لتكون على مستوى النظام. |
المستخدم كرون | يمكن لكل مستخدم أن يكون لديه خاصيته، ويتم تخزينها في /var/spool/cron/crontabs/. |
استخدام كرون والمشاكل وحلولها
يعد Cron مفيدًا لأتمتة المهام، ولكنه قد يؤدي إلى مشاكل إذا لم يتم استخدامه بعناية. على سبيل المثال، قد تؤدي مهمة cron التي تم تكوينها بشكل خاطئ إلى زيادة استخدام وحدة المعالجة المركزية (CPU). أيضًا، يقوم cron فقط بإرسال نتائج وظائفه عبر البريد الإلكتروني، إن وجدت، إلى المستخدم الذي يقوم بتشغيل الوظائف به. قد يتسبب هذا في حدوث أخطاء مفقودة إذا لم يتم التحقق منها بانتظام.
تشمل الحلول الشائعة لهذه المشكلات ما يلي:
- التحقق من الاستخدام العالي لوحدة المعالجة المركزية بانتظام وإعادة تكوين المهام غير الضرورية أو إيقافها.
- التأكد من أن جميع الأوامر والبرامج النصية تعمل بشكل صحيح قبل تعيينها كمهام كرون.
- إعادة توجيه الإخراج إلى ملف السجل أو إعداد خادم بريد لمراقبة وظائف cron بشكل أكثر فعالية.
مقارنات مع أدوات مماثلة
هناك برامج جدولة مهام أخرى مشابهة لـ cron، مثل مؤقتات anacron وsystemd. ويمكن تلخيص الاختلافات الأساسية بين هذه على النحو التالي:
أداة | وصف |
---|---|
كرون | مناسبة للمهام التي سيتم تنفيذها في أوقات محددة من اليوم. لا يقوم بتشغيل المهام المفقودة. |
أناكرون | مناسب للمهام التي سيتم تشغيلها مرة واحدة يوميًا/أسبوعيًا/شهريًا. سيتم تشغيل المهام المفقودة عندما يعود الجهاز إلى الإنترنت. |
سيستيمد | مناسب للسيناريوهات الأكثر تعقيدًا لأنه يوفر المزيد من الخيارات ويتكامل بشكل جيد مع توزيعات Linux الحديثة. |
وجهات النظر المستقبلية والتقنيات ذات الصلة
مع استمرار تطور الأنظمة المستندة إلى نظام Unix، يتطور أيضًا نظام Cron. على الرغم من ظهور أدوات جدولة المهام الأكثر تقدمًا مثل systemd، إلا أن بساطة Cron وقوته تضمن بقاءه قيد الاستخدام الشائع اليوم.
أدى الاتجاه الأخير نحو التطبيقات المعبأة في حاويات وهندسة الخدمات الصغيرة أيضًا إلى ظهور طرق جديدة لاستخدام Cron. على سبيل المثال، تتمتع Kubernetes، وهي منصة شائعة لتنسيق الحاويات، بميزة تُعرف باسم CronJobs والتي تشبه Cron في الأنظمة المستندة إلى Unix.
الخوادم الوكيلة وCron
يمكن استخدام الخوادم الوكيلة بشكل فعال مع Cron لأتمتة مهام معينة. على سبيل المثال، إذا كان لديك برنامج نصي يحتاج إلى الوصول بانتظام إلى موقع ويب أو واجهة برمجة التطبيقات من خلال خادم وكيل، فيمكنك إعداد مهمة cron لتشغيل هذا البرنامج النصي على فترات زمنية محددة.
يمكن أيضًا استخدام Cron لتدوير الوكلاء على فترات زمنية محددة، مما يقلل من فرصة حظر أي وكيل واحد. على سبيل المثال، يمكن أتمتة خدمات الوكيل الخاصة بـ OneProxy باستخدام Cron لمهام مثل استخراج البيانات، وأتمتة مهام الوسائط الاجتماعية، والمزيد.
روابط ذات علاقة
لمزيد من المعلومات حول Cron، خذ بعين الاعتبار الموارد التالية: