CRON(8)

الاسم
crond - برنامج خفي لتنفيذ الأوامر المجدولة

موجز
crond [-c | -h | -i | -n | -p | -P | -s | -m<mailcommand>]
crond -x [ext,sch,proc,pars,load,misc,test,bit]
crond -V

الوصف
يُبدأ Cron من /etc/rc.d/init.d أو /etc/init.d عند استخدام نصوص sysvinit التقليدية. في حال تمكين systemd، يُثبت ملف الوحدة في /lib/systemd/system/crond.service ويُبدأ البرنامج الخفي بأمر systemctl start crond.service. يعود فوراً، لذا لا حاجة لبدئه بالوسيط '&'.

يبحث Cron في /var/spool/cron عن ملفات crontab المسماة بأسماء الحسابات في /etc/passwd. تُحمَّل ملفات crontab الموجودة في الذاكرة. يبحث Cron أيضاً عن /etc/anacrontab وأي ملفات في الدليل /etc/cron.d، والتي لها تنسيق مختلف (انظر crontab(5)). يفحص Cron جميع ملفات crontab المخزنة ويتحقق من كل مهمة لمعرفة ما إذا كانت تحتاج للتشغيل في الدقيقة الحالية. عند تنفيذ الأوامر، يُرسل أي مخرجات بالبريد إلى مالك crontab (أو إلى المستخدم المحدد في متغير البيئة MAILTO في crontab، إن وُجد). يمكن أيضاً إرسال أي مخرجات مهمة إلى syslog باستخدام الخيار -s.

توجد طريقتان للتحقق من التغييرات في ملفات crontab. الطريقة الأولى هي التحقق من وقت تعديل الملف. الطريقة الثانية هي استخدام دعم inotify. يُسجل استخدام inotify في سجل /var/log/cron بعد بدء البرنامج الخفي. يتحقق دعم inotify من التغييرات في جميع ملفات crontab ويصل إلى القرص الصلب فقط عند اكتشاف تغيير.

عند استخدام خيار وقت التعديل، يتحقق Cron من أوقات تعديل ملفات crontab كل دقيقة للتحقق من أي تغييرات ويعيد تحميل ملفات crontab التي تغيرت. لا حاجة لإعادة تشغيل Cron بعد تعديل بعض ملفات crontab. يُستخدم خيار وقت التعديل أيضاً عندما يتعذر تهيئة inotify.

يتحقق Cron من هذه الملفات والأدلة:

/etc/crontab
    ملف crontab النظام. حالياً الملف فارغ مبدئياً. أصلاً كان يُستخدم عادة لتشغيل المهام اليومية والأسبوعية والشهرية. مبدئياً تُشغل هذه المهام الآن عبر anacron الذي يقرأ ملف الإعدادات /etc/anacrontab. انظر anacrontab(5) لمزيد من التفاصيل.

/etc/cron.d/
    دليل يحتوي على مهام cron النظامية المخزنة لمستخدمين مختلفين.

/var/spool/cron
    دليل يحتوي على ملفات crontab للمستخدمين المنشأة بأمر crontab.

لاحظ أن أمر crontab(1) يُحدّث وقت تعديل دليل التخزين المؤقت كلما غيّر ملف crontab.

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

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

تُعتبر تغييرات الوقت التي تزيد عن 3 ساعات تصحيحات للساعة أو المنطقة الزمنية، ويُستخدم الوقت الجديد فوراً.

من الممكن استخدام مناطق زمنية مختلفة لجداول كرونتاب. انظر crontab(5) لمزيد من المعلومات.

  التحكم في الوصول عبر PAM
يدعم Cron التحكم في الوصول عبر PAM إذا كان النظام مثبتًا عليه PAM. لمزيد من المعلومات، انظر pam(8). يتم تثبيت ملف تكوين PAM لـ crond في /etc/pam.d/crond. يقوم البرنامج الخفي بتحميل بيئة PAM من وحدة pam_env. يمكن تجاوز ذلك بتعريف إعدادات محددة في ملف crontab المناسب.

الخيارات

-h  يطبع رسالة مساعدة ويخرج.

-i  يعطل دعم inotify.

-m  يتيح لك هذا الخيار تحديد أمر شل لاستخدامه في إرسال مخرجات البريد لـ Cron بدلاً من استخدام sendmail(8). يجب أن يقبل هذا الأمر رسالة بريد منسقة بالكامل (مع الرؤوس) من الإدخال القياسي ويرسلها كرسالة بريد إلى المستلمين المحددين في رؤوس البريد. تحديد السلسلة off (أي crond -m off) سيعطل إرسال البريد.

-n  يخبر البرنامج الخفي بالتشغيل في المقدمة. قد يكون هذا مفيدًا عند تشغيله من init. مع هذا الخيار، يلزم تغيير إعداد pam. يجب ألا يمكّن /etc/pam.d/crond وحدة pam_loginuid.so.

-f  نفس -n، متسق مع تطبيقات crond الأخرى.

-p  يسمح لـ Cron بقبول أي جداول كرونتاب يحددها المستخدم.

-P  لا تضبط PATH. بدلاً من ذلك، يتم توريث PATH من البيئة.

-c  يمكّن هذا الخيار دعم التجميع، كما هو موضح أدناه.

-s  سيوجه هذا الخيار Cron لإرسال مخرجات المهمة إلى سجل النظام باستخدام syslog(3). هذا مفيد إذا كان نظامك لا يحتوي على sendmail(8) مثبتًا أو إذا كان البريد معطلاً.

-x  يتيح لك هذا الخيار ضبط أعلام التصحيح.

-V  اطبع الإصدار ثم اخرج.

إشارات
عند استلام SIGHUP، سيغلق البرنامج الخفي Cron ملف السجل ويعيد فتحه. يثبت هذا فائدته في البرامج النصية التي تدير تدوير وتقادم ملفات السجل. بطبيعة الحال، هذا غير ذي صلة إذا تم بناء Cron لاستخدام syslog(3).

دعم التجميع
في هذا الإصدار من Cron، من الممكن استخدام /var/spool/cron مشترك ومثبت عبر الشبكة عبر مجموعة من المضيفين وتحديد أن مضيفًا واحدًا فقط يجب أن يشغل مهام crontab في هذا الدليل في أي وقت. يتم ذلك بتشغيل Cron مع الخيار -c، وجعل ملف /var/spool/cron/.cron.hostname يحتوي على سطر واحد فقط، يمثل اسم المضيف لأي مضيف في المجموعة يجب أن يشغل المهام. إذا لم يكن هذا الملف موجودًا، أو لم يتطابق اسم المضيف فيه مع ذلك الذي يعيده gethostname(2)، فسيتم تجاهل جميع ملفات crontab في هذا الدليل. ليس لهذا تأثير على مهام cron المحددة في ملف /etc/crontab أو على الملفات في دليل /etc/cron.d. يتم تشغيل هذه الملفات دائمًا وتعتبر خاصة بالمضيف.

بدلاً من تحرير /var/spool/cron/.cron.hostname مباشرة، استخدم الخيار -n من crontab(1) لتحديد المضيف.

يجب عليك التأكد من أن جميع المضيفين في مجموعة، وخادم الملفات الذي يقومون منه بتركيب دليل crontab المشترك، لديهم ساعات متزامنة بشكل وثيق، على سبيل المثال باستخدام ntpd(8)، وإلا ستكون النتائج غير متوقعة للغاية.

استخدام المشاركة العنقودية يعطل آلي دعم inotify، لأنه لا يمكن الاعتماد على inotify مع أنظمة الملفات المشتركة المثبتة عبر الشبكة.

تحذيرات
جميع ملفات crontab يجب أن تكون ملفات عادية أو روابط رمزية لملفات عادية، ويجب ألا تكون قابلة للتنفيذ أو الكتابة لأي شخص غير المالك. يمكن تجاوز هذا المطلب باستخدام الخيار -p في سطر أوامر crond. إذا كانت دعم inotify قيد الاستخدام، فإن التغييرات في crontabs المرتبطة رمزياً لا يتم ملاحظتها آلياً بواسطة برنامج cron الخفي. يجب أن يستقبل برنامج cron الخفي إشارة SIGHUP لإعادة تحميل crontabs. هذا قيد من واجهة برمجة تطبيقات inotify.

سيتم استخدام مخرجات syslog بدلاً من البريد، عندما لا يكون sendmail مثبتاً.

انظر أيضًا
crontab(1), crontab(5), inotify(7), pam(8)

المؤلف
Paul Vixie (vixie@isc.org)
Marcela Mašláňová (mmaslano@redhat.com)
Colin Dean (colin@colin-dean.org)
Tomáš Mráz (tmraz@fedoraproject.org)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.