إذا كنت تستخدم نظام لينكس بشكل يومي، فستحتاج عاجلاً أم آجلاً إلى أتمتة المهام المتكررة باستخدام Cron و Crontabالنسخ الاحتياطية، والتحديثات، وإنشاء التقارير، وتنظيف الملفات، والمراقبة... كل ذلك يتم يدويًا ويستغرق وقتًا طويلاً، ومن السهل نسيانه. وهنا يأتي دور Cron، وهو ركن أساسي في إدارة أنظمة Unix وGNU/Linux منذ عقود.
على الرغم من أن صيغة Crontab قد تبدو مخيفة بعض الشيء للوهلة الأولى، إلا أنك بمجرد فهم منطقها ستدرك ذلك. جدولة المهام في نظام لينكس باستخدام Crontab أسهل بكثير مما يبدوتقدم هذه المقالة دليلاً شاملاً: ما هو Cron، وما هو Crontab، وكيفية كتابة القواعد، وكيفية تصحيح الأخطاء، وتأثيره المحتمل على الأداء، والأدوات الخارجية التي يمكنك استخدامها، والبدائل في الأنظمة الأخرى، وحالات الاستخدام المنزلية والتجارية.
الاختلافات بين Cron و Crontab
كثيراً ما يتم الحديث عن Cron و Crontab كما لو كانا شيئاً واحداً، ولكن في الواقع هما قطعتان مختلفتان تعملان معاً.إن فهم هذا الفرق سيوفر عليك الكثير من المتاعب عندما يتعين عليك تصحيح أخطاء المهام التي لا تعمل.
- كرون هو البرنامج الخفي الذي يعمل في الخلفية منذ لحظة بدء تشغيل النظام. مهمته بسيطة للغاية: مراجعة سلسلة من ملفات التكوين كل دقيقة وتحقق مما إذا كانت هناك أي مهام مجدولة تحتاج إلى التنفيذ وفقًا لتاريخ ووقت النظام.
- كرونتاب، من ناحية أخرى ، هو ملف نصي يتم فيه تعريف تلك المهاميمكن لكل مستخدم امتلاك ملف crontab خاص به، يحتوي على قواعده وبرامجه النصية، والتي تُنفذ وفقًا لصلاحياته. يقوم برنامج Cron daemon بقراءة هذه الملفات وتشغيل الأوامر عند الحاجة.
ستجد كلا المكونين متاحين بشكل افتراضي في أي توزيعة لينكس حديثة، لذلك يمكنك جدولة المهام المتكررة في أي توزيعة تقريبًاسواء كان ذلك ديبيان، أو أوبونتو، أو أوراكل لينكس، أو سنت أو إس، أو روكي، أو فيدورا، إلخ.
ما هو Cron ولماذا يُعدّ وقت النظام بالغ الأهمية؟
كرون هو برنامج النظام الذي يبدأ عند تشغيل نظام لينكسيتم تشغيله عادةً عبر نصوص التمهيد الكلاسيكية في / الخ / init.d أو على طرق مماثلة مثل /الخ/rc.dأو باستخدام وحدات systemd (خدمة crond أو cron، حسب التوزيعة). يتم التحقق كل دقيقة:
/etc/crontab، و/etc/cron.d، و/var/spool/cron، و/var/spool/cron/crontabs (يختلف المسار الدقيق حسب التوزيع)، حيث يبحث عن المدخلات التي تطابق الدقيقة الحالية. إذا عثر على أي منها، فإنه ينفذ الأمر المشار إليه.
هناك أمر يغفل عنه الكثير من الناس وهو أن يعتمد Cron كلياً على وقت النظامإذا تم ضبط الساعة أو المنطقة الزمنية بشكل غير صحيح، فسيتم تشغيل مهامك في أوقات خاطئة. للتحقق من الوقت على الأنظمة الحديثة، يمكنك استخدام:
timedatectl
يعرض هذا الأمر التوقيت المحلي، والتوقيت العالمي المنسق (UTC)، والمنطقة الزمنية، وما إذا كان النظام يقوم بالمزامنة مع خوادم بروتوكول وقت الشبكة (NTP). من الناحية المثالية، مزامنة NTP نشطةلأن الساعة بهذه الطريقة تصحح نفسها تلقائياً.
إذا لاحظت أن المنطقة الزمنية غير صحيحة، يمكنك تغييرها باستخدام أمر مثل timedatectl set-timezone Europe/Madrid أو منطقة أخرى تتوافق مع بلدك. كذلك، في العديد من أنظمة لينكس، يتم تكوين بروتوكول NTP تلقائيًا، ولكن إذا كنت ترغب في تخصيصه، يمكنك... /etc/ntp.conf أو استخدم خدمات بديلة مثل كروني.
ما هو برنامج Crontab وكيف يتم تنظيمه؟
كرونتاب هو ملف تكتب فيه قواعد تنفيذ مهامك المجدولةيمثل كل سطر (مع تجاهل التعليقات) "مهمة": متى يتم تشغيلها وما هو الأمر الذي يتم تنفيذه. عادةً، يكون لكل مستخدم ملف crontab خاص به في دليل التخزين المؤقت. / var / spool / cron o / var / spool / cron / crontabs، وفقًا للتوزيعة.
لإدارة جدول المهام الشخصية (crontab)، استخدم الأمر كرونتاب مع عدة خيارات أساسية لكنها فعّالة. لا يتم تعديل الملفات يدويًا باستخدام محرر نصوص، بل من خلال هذا الأمر لتجنب أخطاء الأذونات أو التنسيق.
تعتمد الصيغة الأساسية لسطر واحد في Crontab على خمسة حقول زمنية بالإضافة إلى الأمر:
m h dom mon dow comando
- مينوتو (م): القيم من 0 إلى 59.
- مرة (ح): القيم من 0 إلى 23.
- يوم من الشهر (الأحد): من 1 إلى 31.
- شهر (mon): من 1 إلى 12 أو الاسم المختصر (يناير، فبراير، إلخ، وفقًا للنظام).
- ديا دي لا سمانا (لأسفل): من 0 إلى 6 أو من 0 إلى 7، مع اعتبار يوم الأحد هو 0 (وأحيانًا أيضًا 7).
- قيادةأي أمر يمكنك تشغيله في الطرفية، بما في ذلك البرامج النصية وعمليات إعادة التوجيه.
ومن الأمثلة النموذجية على ذلك:
00 19 * * * /home/usuario/scripts/backup.sh
يشير هذا السطر إلى أنه سيتم تنفيذ البرنامج النصي كل يوم الساعة 19:00 مساءً (الساعة 7 مساءً)، بغض النظر عن يوم الشهر أو الشهر أو يوم الأسبوع.
كيفية إنشاء وتعديل وعرض جدول المهام (Crontab)
للعمل مع ملف مهامك الشخصية، ستستخدم الأمر نفسه في أغلب الأحيان. كرونتاب. الفكرة هي أن لا تقم بتحرير الملفات الموجودة في /var/spool/cron/crontabs يدويًالأنها مصممة ليتم إدارتها تلقائيًا بواسطة النظام.
أكثر الطلبات شيوعاً هي:
- -e كرونتابافتح ملف crontab الخاص بك في محرر النصوص الافتراضي (في العديد من توزيعات لينكس) همة o نانو) لإنشاء أو تعديل الإدخالات.
- crontab -lيعرض على الشاشة جميع المهام المجدولة لمستخدمك.
- crontab -rاحذف جدول المهام (crontab) بالكامل؛ فهذا إجراء لا رجعة فيه. لن يطلب تأكيدًا إذا لم تُضِف الخيار -i.
- crontab -i -rيطلب تأكيدًا قبل حذف ملف crontab.
- ملف crontab: استبدل ملف crontab الحالي بمحتويات الملف المحدد.
- مستخدم crontab -u: إدارة جدول مهام المستخدم (للمستخدم الجذر فقط أو لمن لديهم صلاحيات).
- crontab -c دير: في الأنظمة التي تدعم ذلك، يحدد الدليل الذي سيتم فيه تخزين ملف crontab.
إذا كنت ترغب في عمل نسخة احتياطية من إعداداتك، يمكنك القيام بشيء بسيط مثل:
crontab -l > ~/crontab_backup.txt
وإذا احتجت إلى استعادته لاحقًا، فما عليك سوى:
crontab ~/crontab_backup.txt
بناء الجملة المتقدم: الأحرف الخاصة في Crontab
بالإضافة إلى الأرقام، يتيح لك Crontab استخدام الأحرف الخاصة التي تجعل بناء الجملة أكثر مرونةبفضلها يمكنك التعبير عن النطاقات أو القوائم أو الفترات بطريقة مختصرة.
- * (النجمة)تشير النقطتان الرأسيتان (:) إلى "جميع القيم الممكنة" في ذلك الحقل. على سبيل المثال، * في حقل الوقت هذا يعني كل الساعات.
- ، (يأكل)افصل واحدًا قائمة القيم المحددة. مثال:
0 6,18 * * *يبدأ العرض في الساعة 6:00 و 18:00. - - (نص): يحدد نطاق متصل. مثال:
0 8-17 * * 1-5يتم تشغيلها كل ساعة من الساعة 8 صباحًا حتى 17 مساءً، من الاثنين إلى الجمعة. - / (شرطة مائلة)ضع علامة أ خطوة أو فاصل زمني. على سبيل المثال ،
*/10 * * * *يعني "كل 10 دقائق". - النطاق/باستثناء (اعتمادًا على التنفيذ): تسمح بعض المتغيرات بتحديد القيم المستبعدة، على الرغم من أن هذا ليس قياسيًا في جميع مهام cron.
ومن الأمثلة النموذجية للاستخدام المشترك ما يلي:
*/5 2 * * 1-5 /bin/ejecutar/script.sh
يُشغّل هذا السطر الأمر كل 5 دقائق خلال الساعة الثانية (2:00) من الاثنين إلى الجمعةإنها طريقة مختصرة لاستبدال قائمة طويلة من الدقائق.
الشخصية # (ضمادة) في بداية السطر، يُستخدم لـ أضف تعليقاتيتم تجاهل كل شيء بعد هذا الرمز على نفس السطر، وهو أمر مثالي لتوثيق سبب وجود مهمة ما أو تعطيلها مؤقتًا دون حذفها.
الكلمات المفتاحية والاختصارات الزمنية في Crontab
بالنسبة للحالات الأكثر شيوعًا، يقدم Crontab اختصارات على شكل "كلمات محجوزة" هذه الخيارات تحل محل جميع حقول الوقت. وهي مفيدة للغاية عندما تريد شيئًا مثل "كل يوم" أو "كل ساعة" دون الحاجة إلى التفكير في الأرقام.
- @اعادة التشغيل: ينفذ الأمر بمجرد بدء تشغيل النظام.
- @سنوي o @سنويامرة واحدة في السنة، تعادل 0 0 1 1 *.
- @شهريامرة واحدة في الشهر، في اليوم الأول عند منتصف الليل، بما يعادل * * 0،0،1 XNUMX XNUMX.
- @أسبوعيمرة واحدة في الأسبوع، عند منتصف ليل اليوم صفر (عادةً يوم الأحد)، وهو ما يعادل 0 0 * * 0.
- @يوميًا o @منتصف الليلمرة واحدة في اليوم، في تمام الساعة 00:00، أي ما يعادل 0 0 * * *.
- @كل ساعةمرة واحدة كل ساعة، في الدقيقة 0، ما يعادل 0،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX * * * *.
على سبيل المثال، إذا كنت تريد تشغيل برنامج نصي كل ساعة، يكفي مع:
@hourly /bin/ejecutar/script.sh
وإذا كنت تريد بدء تشغيل برنامج الصيانة بعد كل إعادة تشغيلستستخدم ما يلي:
@reboot /ruta/a/mi_script.sh
متغيرات البيئة وبنية الأوامر
أحد المصادر الشائعة للأخطاء هو ذلك يعمل Cron في بيئة بسيطةلن يتم خصم أي مبلغ من حسابك .bashrc ولا بيئة المستخدم بأكملها، لذا المسار محدود للغاية (عادةً ما يكون شيئًا مثل /usr/bin:/binوهذا يجعل الأوامر مثل بايثون، جيت، بي إتش بي، أو بيب لا يمكن العثور عليها إذا لم تستخدم المسار المطلق.
لتجنب ذلك، لديك خياران: استخدم دائمًا المسارات الكاملة في نصوصك البرمجية (على سبيل المثال، /usr/bin/python3 بدلا من python) أو قم بتعريف متغيرات البيئة في بداية ملف crontab الخاص بكمثال على ذلك:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SHELL=/bin/bash
HOME=/home/usuario
يتم وضع هذه الأسطر في بداية ملف crontab، بدون حقول زمنيةويؤثر ذلك على الوظائف الأخرى التي تحددها أدناه. يمكنك أيضًا تحديد مايلتو لتحديد عنوان البريد الإلكتروني الذي يتم إرسال مخرجات المهام القياسية ومخرجات الأخطاء إليه.
تذكر تقبل الأوامر في Crontab جميع صيغ أوامر shellيمكنك إعادة توجيه المخرجات إلى ملف، أو ربط الأوامر باستخدام الأنابيب، وما إلى ذلك. على سبيل المثال، إلى احفظ جميع مخرجات البرنامج النصي في سجل.:
* * * * * /home/usuario/helloworld.sh >> /var/log/logs.log 2>&1
وايضا لو اردت كتم الرسائل تمامًا وعدم تلقي البريد الإلكتروني يمكنك إعادة التوجيه إلى تلك الوظيفة. / ديف / لاغية:
* * * * * /home/usuario/helloworld.sh >/dev/null 2>&1
إدارة المخرجات: السجلات والبريد الإلكتروني
يمكن التعامل مع مخرجات Cron بعدة طرق، وذلك بحسب التوزيعة والتكوين. في أنظمة مثل Oracle Linux أو Debian المصغرة، إذا لم يكن هناك برنامج بريد إلكتروني مثبت، يقوم برنامج cron daemon بإرسال المخرجات مباشرة إلى نظام التسجيل..
في كثير من الحالات، يمكنك عرض نشاط cron في ملفات مثل:
- /var/log/cron (وهو أمر شائع في أنظمة Oracle Linux و CentOS و RHEL).
- / فار / سجل / سيسلوغ (شائع في دبيان ومشتقاتها).
على سبيل المثال تصفية الرسائل المتعلقة بـ cron فقط في نظام يستخدم syslog، يمكنك القيام بشيء مشابه لما يلي:
grep CRON /var/log/syslog
المعلومات عادة ما تكون موجزة (الوقت، المستخدم، الأمر)، لكنها تساعدك على معرفة ما إذا كان شيء ما قيد التشغيل أو ما إذا كان يفشل.
إذا قمت بتثبيت وكيل نقل البريد (MTA) مثل Postfix أو Sendmailثم يتم إرسال مخرجات المهام إلى قائمة انتظار البريد المحلية للمستخدميتم تخزينه عادة في /var/spool/mail/$USER أو مسارات مماثلة، ويمكنك قراءتها باستخدام أدوات مثل mailx (أمر mail).
بالإضافة إلى ذلك، يمكنك التحكم في مستلم رسائل البريد الإلكتروني الخاصة بـ cron باستخدام المتغير مايلتو في بداية ملف crontab:
MAILTO="tu.correo@ejemplo.com"
إذا تركت حقل MAILTO فارغًا بدلاً من ذلك، كما يلي:
MAILTO=""
Entonces لن يتم إرسال أي بريد إلكتروني لأي من المهام المحددة في جدول المهام هذايُعد هذا مفيدًا إذا كان لديك العديد من المهام التي تُنتج مخرجات ثابتة.

أدوات وبرامج مساعدة للعمل مع Cron
إذا لم تكن مرتاحًا لكتابة تعابير cron يدويًا، فهناك العديد من الطرق. أدوات تساعدك على إنشاء القواعد دون ارتكاب أخطاءبعضها خدمات ويب، والبعض الآخر تطبيقات رسومية.
- خبير كرونتاب: صفحة عملية للغاية حيث يمكنك كتابة تعبير cron و... اشرح بنص سهل القراءة ما يفعلهينبهك إلى الأخطاء ويقدم أمثلة ونصائح شائعة.
- مولد مهام Cronمساعد إلكتروني لإنشاء تعابير Cron من خيارات مثل الوقت واليوم والفاصل الزمني، إلخ. يتيح لك إنشاء مهام متكررة باستخدام الإعدادات المحددة مسبقًا وقم بتخصيصها.
- إيزيكرونخدمة سحابية لـ جدولة طلبات HTTP إلى عناوين URL على فترات زمنية محددة. يستخدم على نطاق واسع لتشغيل البرامج النصية للويب، ومهام واجهة برمجة التطبيقات، وما إلى ذلك، مع لوحة تحكم وسجلات وتنبيهات عبر البريد الإلكتروني.
- KDE Cron (KCron)أداة رسومية مدمجة في بيئة KDE لـ إنشاء وتعديل وحذف مهام cron دون الحاجة إلى استخدام سطر الأوامريتيح لك تحديد الأوقات والتواريخ من خلال واجهة مرئية.
- صانع كرونمولد تعبيرات كرون عبر الإنترنت مصمم لـ التكامل مع مكتبة Quartz (يستخدم على نطاق واسع في بيئات جافا)، ولكنه مفيد أيضًا لفهم التركيبات المعقدة.
لا تحل هذه الأدوات محل Cron على نظامك، ولكن إنها تبسط الجزء التركيبي من التعبيرتقليل أخطاء بناء الجملة.
أنواع جداول المهام (Crontab): النظام والمستخدم
يوجد في نظام لينكس نوعان رئيسيان من ملفات التكوين للمهام المجدولة: جدول مهام النظام و جدول مهام المستخدميستخدم كلاهما بنية نحوية متشابهة للغاية، لكنهما لا يُداران بنفس الطريقة.
El كروناب النظام، عادة في / الخ / كرونتاب وفي ملفات /etc/cron.d، عادة ما يتطلب أذونات الجذريُستخدم هذا الأمر لمهام النظام الحيوية (تدوير السجلات، وصيانة قواعد البيانات، ومهام النسخ الاحتياطي عالية المستوى، وما إلى ذلك)، وعلى عكس جدول مهام المستخدم (crontab)، فإنه يتضمن حقل المستخدم بشكل صريح في كل سطر للإشارة إلى بأي هوية يتم تنفيذ الأمر؟.
الكثير جدول مهام المستخدم تتم إدارتها بواسطة -e كرونتاب ويتم تخزينها في / var / spool / cron / crontabs أو موقع مماثل. لا يمكن إلا للمستخدم تقديم وظائفه. (أو المستخدم الجذر، الذي يمكنه إدارة مهام cron الخاصة بالآخرين)، ولا ينبغي تعديلها مباشرةً. لتقييد من يمكنه استخدام cron، يمكنك تعديل الملفات. /etc/cron.allow y /etc/cron.deny.
تأثير Cron و Crontab على الأداء
على الرغم من أن Cron نفسه يستهلك موارد قليلة جدًا، إلا أن سوء تخطيط المهام يمكن أن يؤدي إلى يؤثر سلبًا على أداء النظامالمشكلة عادة ليست في برنامج cron daemon، بل في ما نأمره بتنفيذه.
عندما تقوم بجدولة العديد من المهام لتشغيلها في نفس الوقت، فقد تتسبب في ذروة استخدام وحدة المعالجة المركزية وذاكرة الوصول العشوائيعلى سبيل المثال، فإن تشغيل ثلاث نسخ احتياطية كبيرة، وإعادة فهرسة قاعدة البيانات، وبرنامج تحليل السجلات في نفس الوقت بالضبط هو ضمان شبه مؤكد لتباطؤ الخادم.
إذا كانت المهام تتضمن الشبكات (نسخ عن بعد، المزامنة مع rclone(عمليات نقل البيانات الجماعية)، يمكنك إنشاء زيادة الحمل على النطاق الترددي، وزيادة زمن الاستجابة، وزمن الاستجابة (ping).مما يؤثر على الخدمات الأخرى التي تعتمد على الاتصال.
هناك أيضا خطر تعارضات المهاميمكن أن يتسبب وجود نصين برمجيين يعملان في وقت واحد على نفس الملف أو قاعدة البيانات بعمليات مختلفة في تلف البيانات أو حدوث أعطال غريبة يصعب تشخيصها.
للحد من التأثير، يمكنك استخدام أدوات مثل رحلة جميلة لتقليل أولوية وحدة المعالجة المركزية للمهمة، أو com.cpulimit لتقييد النسبة المئوية القصوى لوحدة المعالجة المركزية التي يمكن أن تستهلكها عملية ما:
- أولوية منخفضة لوحدة المعالجة المركزية:
0 19 * * * usuario nice -n 19 /ruta/script.sh - تحديد استخدام وحدة المعالجة المركزية بنسبة 50%:
0 19 * * * usuario cpulimit -l 50 /ruta/script.sh
استخدام Crontab للمهام الروتينية: النسخ الاحتياطي، والتنظيف، والمراقبة
إحدى المزايا الرائعة لبرنامج Cron هي أنه يسمح لك بـ أتمتة "صيانة" جهازك بسهولة تامة تقريباً، مما يحسن الأداء على المدى المتوسط ويوفر الوقت.
أحد الاستخدامات الشائعة جدًا هو قم بتنظيف الملفات المؤقتة وذاكرة التخزين المؤقت والمجلدات الفارغة بشكل دوري.باستخدام برنامج نصي يقوم بحذف الملفات القديمة أو الفارغة في مسارات معينة، يمكنك تحرير مساحة وتقليل تجزئة نظام الملفات.
نمط آخر مفيد هو تحديثات نظام الجدولة والتطبيق خلال ساعات خارج أوقات الذروة. على سبيل المثال، وظيفة ليلية تبدأ تحديث apt وترقية apt (أو ما يعادله في توزيعتك) يسمح للنظام بأن يكون محدثًا دون مقاطعة العمل اليومي.
يمكنك أيضًا أتمتة إغلاق الطلبات التي ظلت غير نشطة لفترة طويلة جدًايُتيح ذلك تحرير الذاكرة للعمليات الأخرى. في بيئات سطح المكتب أو خوادم التطبيقات، يُمكن أن يُحدث هذا فرقًا كبيرًا.
وبالطبع، يُعدّ كرون مثاليًا لـ برامج المراقبة والتسجيلقم بتسجيل استخدام وحدة المعالجة المركزية، وذاكرة الوصول العشوائي، والقرص، وزمن استجابة الشبكة، وما إلى ذلك بانتظام، وقم بتخزينها في ملفات السجل، ثم قم بتحليل الاتجاهات لاكتشاف الاختناقات قبل أن تصبح حوادث خطيرة.
عيوب وقيود Cron و Crontab
على الرغم من أن Cron أداة قوية للغاية، إلا أنها ليست الحل الأمثل لكل شيء. القيود التي تستحق المعرفة حتى لا يتم تجاوز حدود إمكانياته.
على جانب واحد هو منحنى التعلمإذا كنت معتادًا على بيئات أو أنظمة رسومية أكثر مثل ويندوز، فقد يكون من المخيف في البداية كتابة تعبيرات cron يدويًا والعمل بدون واجهة مرئية.
من ناحية أخرى، يرتبط Cron ارتباطًا وثيقًا بنظام Unix/Linux البيئي. ما ستتعلمه سيكون مفيدًا على العديد من الخوادم والأنظمة المشابهة، ولكن لن تتمكن من استخدامه كما هو على نظامي التشغيل ويندوز أو ماك أو إس (والتي لها آلياتها الخاصة).
فيما يتعلق بالأمن، إذا ملفات تكوين cron غير محمية بشكل جيدقد تُشكّل هذه البرامج ثغرةً لتنفيذ برامج خبيثة. إن السماح لأي مستخدم ببرمجة الأشياء دون رقابة يفتح الباب أمام المشاكل.
علاوة على ذلك، كرون لا يُعدّ هذا الخيار مثالياً للمهام المعقدة للغاية أو المهام التي تتضمن العديد من التبعيات.لا يتعامل هذا النظام مع تدفق الأخطاء بطريقة متقدمة، ولا يمكنه إعادة المحاولة باستخدام المنطق الشرطي، ولا يتكامل بشكل أصلي مع الأنظمة الموزعة. ولذلك، توجد أنظمة جدولة أكثر تطوراً أو مؤقتات خاصة بنظام systemd.
عليك أيضا أن تضع في اعتبارها ذلك لا يوفر crontab سوى دقة دقيقة واحدةإذا كنت بحاجة إلى شيء يعمل عدة مرات في الثانية أو على فترات زمنية أقل من دقيقة واحدة، فسيتعين عليك استخدام أدوات أخرى أو حلقات برمجية داخل البرنامج النصي نفسه.
بدائل لـ Cron و Crontab: Anacron و Fcron و hcron و Mcron وغيرها
في بعض الحالات، لا يُعدّ Cron خيارًا مثاليًا. على سبيل المثال، إذا كان لديك جهاز كمبيوتر محمول أو خادم لا يعمل باستمرار، يمكن "فقدان" الوظائف المجدولة لوقت محدد. إذا تم إيقاف تشغيل الجهاز في ذلك الوقت.
ولتغطية مثل هذه الحالات، توجد بدائل مثل أناكرونوهو مصمم لأداء مهام دورية دون الحاجة إلى أن يكون الجهاز قيد التشغيل باستمرارإذا كان الكمبيوتر مطفأً عند حلول موعد إنجاز مهمة ما، فسيقوم برنامج Anacron بتشغيلها في أسرع وقت ممكن بعد بدء التشغيل.
إف كرون إنه خيار آخر مثير للاهتمام. لا يتطلب أن يكون النظام نشطًا باستمرار؛ بل يمكنه العمل مع تواريخ وأوقات محددةويوفر مرونة أكبر على حساب الحاجة إلى التثبيت اليدوي على العديد من التوزيعات.
hcron بل إنها تتجاوز ذلك خطوة أخرى، إذ تسمح باستخدام ملصقات لتنظيم الوظائف، وإدارة شبكات الآلات، وتحسين السلامةإنها ليست شائعة جدًا، لكنها قد تتناسب جيدًا مع البيئات التي يُفضل فيها الإدارة المركزية.
ماكون (المستند إلى Guile) يختلف في أنه يعتمد على لغة برمجة كاملة لتحديد جدولة المهام، مما يمنحه قوة هائلة عندما يتعلق الأمر بإعادة تعريف الوظائف، وإنشاء التبعيات، والتعامل مع المنطق المعقد.
في نظام التشغيل ويندوز، يتم استخدام حلول مثل Cron بدلاً من ذلك. WinCron أو VisualCron أو جدولة المهام المتقدمةوالتي توفر واجهات رسومية سهلة الاستخدام ووظائف مماثلة، على الرغم من أنها متكاملة مع نظام مايكروسوفت البيئي.
Cron و Crontab في بيئات الأعمال
في الشركات من جميع الأحجام، يُعد كل من Cron و Crontab جزءًا من "الرابط" الذي يُبقي الأنظمة قيد التشغيل. فهما يسمحان أتمتة العمليات المتكررة والحرجة بدون تدخل بشري مستمر، مما يقلل من مخاطر الفشل ويوفر وقت المسؤولين.
من بين الاستخدامات التجارية الأكثر شيوعًا ما يلي: النسخ الاحتياطي المجدول، وتحديثات البرامج، وإنشاء التقارير الدورية، ومهام صيانة قواعد البيانات، وتنظيف السجلاتبفضل دقة بناء الجملة، يمكنك ضبط وقت تنفيذ الإجراءات بدقة لتقليل التأثير.
علاوة على ذلك، فإن هذه الأتمتة لها تأثير مباشر على الكفاءة والإنتاجيةلا يتعين على الموظفين تذكر بدء العمليات الروتينية، مما يقلل من الأخطاء البشرية، ويحسن استخدام فترات انخفاض الحمل لأداء العمليات الثقيلة.
ومع ذلك، يُنصح في بيئات الأعمال قم بتوثيق جميع المهام المجدولة بدقة، واحتفظ بنسخ احتياطية من crontabs، وقم بمراجعة دورية للتأكد من أن ما تم تحديده لا يزال منطقياً.بمرور الوقت، من السهل تراكم المهام القديمة التي تستمر في استهلاك الموارد دون المساهمة بأي شيء.
في النهاية، يصبح كرون وكرونتاب نوعًا من "الجدولة التلقائية" للنظامإذا تم استخدامها بحكمة، فإنها تصبح لا غنى عنها في كل من الخوادم المتواضعة والبنى التحتية الكبيرة التي تضم العديد من الأجهزة، وتسمح لك بالحفاظ على أساس متين لبناء أدوات تنسيق أو مراقبة أكثر تقدماً.
في ضوء كل ما سبق، من الواضح أن تُعد جدولة المهام في نظام لينكس باستخدام Crontab واحدة من أبسط وأقوى الطرق لأتمتة نظامكببضع سطور مكتوبة بشكل جيد، يمكنك التعامل مع النسخ الاحتياطية والتنظيف والتحديثات والمراقبة وعمليات الأعمال دون لمس أي زر، طالما أنك تحترم حدودها وتدير الأذونات وتتحكم في البيئة وتخطط بشكل معقول للتأثير على الأداء والأمان.