سؤال متى يتم تشغيل `cron.daily`؟


متى الادخالات في cron.daily (و .weekly و .hourly) تشغيل ، وهل هو شكلي؟

لم أجد إجابة محددة لهذا ، وأنا على أمل أن يكون هناك واحد.

أنا أدير RHEL5 و CentOS 4 ، ولكن بالنسبة للموزعات / المنصات الأخرى ستكون رائعة أيضًا.


178
2018-04-26 15:31


الأصل


على نت بييتم تعيين أوقات cronjobs اليومية والأسبوعية والشهرية في crontab الجذر. - hd1
سيكون هذا السؤال أكثر فائدة إذا تم تحرير السؤال ليكون أكثر عمومية. على الأقل جعل السؤال عامًا لأي إصدارات من ريدهات ، توزيعات centos بدلاً من الإصدارين 4 و 5 فقط (والتي لا تستخدم على نطاق واسع وهي "نهاية الانتاج" (مشابه ل نهاية الحياة). - Trevor Boyd Smith
TrevorBoydSmith - تم طرح هذا السؤال قبل 8 سنوات تقريبًا. لا تتردد في طلب واحد محدث عن الإصدارات الأحدث. لكن RHEL 6 لم تكن موجودة في أبريل 2010: access.redhat.com/articles/3078#RHEL6 - warren
warren هدفي ليس لانتقاد ولكن مجرد تحسين السؤال و stackoverflow بشكل عام. (أتفهم أن RHEL 6 لم يكن موجودًا عندما طُرح السؤال ، لأن السؤال يحتوي على العديد من الأنصارات الآن ، لذا سيكون من اللطيف أن تكون أكثر عمومية.) - Trevor Boyd Smith
TrevorBoydSmith .. هناك إجابة لـ CentOS / RHEL 6 بالفعل :) ... سأكون سعيدًا بالموافقة على التعديلات الجيدة منك إذا كان لديك بعض الأفكار. استمر وإجراء التعديلات المقترحة على السؤال الذي فكرت به - warren


الأجوبة:


للتوزيعات التي ذكرتها:

على CentOS 5.4 (يجب أن يكون نفسه لـ RHEL5)

grep run-parts /etc/crontab

01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

حتى يتم تشغيل cron.daily في 04:02 صباحا.

نفسه على CentOS 4.8


136
2018-04-26 16:23



هل هناك أي سبب وراء هذا؟ يمكنني فقط أن أفترض أنه سيكون أهدأ وقت على الخادم. - The Pixel Developer
@ ما الوقت الذي يتم تشغيله في أوبونتو؟ هل يمكن أن تخبرني كيف يمكنني التحقق من ذلك؟ أنا غير قادر على فهم إخراج الأمر - Narendra Jaggi
NarendraJaggi يعني الأمر "تشغيل أجزاء" "تشغيل كل شيء في هذا المجلد". تعمل المجلدات cron.daily ، إلخ. لأن هناك مهمة كرون لتنفيذ أجزاء التشغيل على هذه الدلائل. وبالتالي grep run-parts /etc/crontab فقط يجد التعليمات على متى يتم استدعاء أجزاء التشغيل لكل من هذه الأدلة. - Jordan Reiter
لم تعد هذه الإجابة صالحة لـ CentOS 6 أو أعلى ، قم بالتمرير لأسفل للحصول على المزيد. - lzap


من صفحة الرجل:

 Cron also searches for /etc/anacrontab

/etc/anacrontab في نظامي (فيدورا 12):

1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

أنظر أيضا man anacrontab


63
2018-04-26 15:35



هذا هو الحال مع CentOS 6. شكر. - mbrownnyc
وهذا يعني 5:00 كل يوم "1"؟ عذرا ، لكن هذا لا يجيب. - elysch
elysch دعوني أكرر السطر الأخير من إجابتي: انظر أيضًا "man anacrontab" - leonbloy
شرح جيد للانيكرون هنا. في الأساس، anacron لديها لا وقت البدء ثابت، ولكن بدلاً من ذلك سيبدأ العملية بناءً على وقت تشغيل العملية الأخيرة ، مع تأخر محدد. إذا كان الجهاز متوقفًا عند العملية يجب أن يكون ركض، ثم سيبدأ العملية عندما يعود الجهاز ، بعد التأخير المحدد (يمنع أي نطاقات خاصة + تأخير عشوائي ، انظر الإجابة منspechal). - storm_m2138
@ mbrownnyc وأيضا CentOS-7 أيضا - Trevor Boyd Smith


بالنسبة لـ CentOS 6 ، تحتاج إلى grep / etc / anacrontab وتختلف الإجابة إذا تم إيقاف تشغيل الخادم / الكمبيوتر المحمول / dekstop / etc أو لا.

cat /etc/anacrontab 
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1   5   cron.daily      nice run-parts /etc/cron.daily
7   25  cron.weekly     nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly        nice run-parts /etc/cron.monthly

لذلك ، بين ساعات 03:00 و 10 PM** (بعد إعادة التشغيل وبعد أن تم الجهاز لمدة 5 دقائق ^^) ، تشغيل / etc / cron.daily. إذا لم يكن هناك إعادة تشغيل ، فيجب تشغيل المهمة في 3:05 AM++.

** As defined by START_HOURS_RANGE
^^ As defined by FIELD_TWO (i.e. the 5 after the 1 in the cron.daily line)
++ plus a random time between 0 and 45 minutes as defined by RANDOM_DELAY

مرجع: http://linux.die.net/man/5/anacrontab


38
2017-10-29 21:20





بالنسبة لأنظمة SuSE (على وجه التحديد SLES 11.1 و openSuSE 10.3) ، يتم التحكم في وقت التشغيل اليومي للبرامج النصية /etc/cron.daily بقيمة DAILY_TIME مجموعة متغير في / الخ / sysconfig / كرون ملف.

إذا لم يتم تعيين متغير DAILY_TIME ، فسيتم تحديده افتراضيًا: (وقت آخر إقلاع + 15 دقيقة).


13
2017-08-16 03:18



تشك كثيرا! SuSE مبهمة إلى حد ما بالنسبة لي وأنا أقدر إجابتك. - dr0i


على Ubuntu ، ستجد ملف / etc / crontab ، من حيث تم تكوين هذا. أعتقد أنه شيء مشابه في RH و Centos.


9
2018-04-26 15:33



هذا هو الملف الصحيح لأوبونتو 10.1 LTS. الإعداد الافتراضي هو 6:25 صباحًا لـ cron.daily. - geekQ
لا يزال تعيين الساعة 6:25 صباحا على أوبونتو 15.04. لكنني لاحظت أنه يجب على cron إدراج بعض العشوائية في الوقت الذي تبدأ فيه الوظائف. بالنظر إلى الطوابع الزمنية للملفات التي أخلقها يومي ، أرى في بعض الأيام أنها تعمل في وقت مبكر مثل 6:26 ، وعلى الآخرين في الساعة 8:04 صباحا. - Stéphane
لا يزال في الساعة 6:25 صباحا على أوبونتو 16.04 - كل ساعة في الساعة 17 دقيقة الماضية. يوميا في 6:25 صباحا. أسبوعيًا الساعة 6:47 صباحًا يوم السبت. شهريًا الساعة 6:52 صباحًا من اليوم الأول من الشهر. - WinEunuuchs2Unix


تثبيت CentOS6.x / RedHat6.x بشكل افتراضي حزمة cronie-anacron. عليك أن:

yum تثبيت cronie-noanacron

يم محو cronie-anacron

ثم لديك الآن /etc/cron.d/dailyjobs لتكوين أفضل جدول زمني لوظائفك اليومية والأسبوعية والشهرية.


4
2017-08-29 19:50



إذا تم تثبيت anacron ، لا يمكنك فقط تحرير / etc / anacrontab حسب التعليقات الأخرى هنا بدلاً من إلغاء تثبيته؟ - cincodenada
cincodenada هذا ليس ما يقترحه دانيال ستانتوس. - mikemaccana


أنا استخدم سلاكوير (14.0) ، ولم يكن لديك /etc/crontab. أيضا، anacron ليس جزءا من التوزيع.

كان الحل على نظام بلدي بسيطة مثل تشغيل crontab -l كجذر:

root@flea:~# crontab -l
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null.  We'll do this here since these jobs should run
# properly on a newly installed system.  If a script fails, run-parts will
# mail a notice to root.
#
# Run the hourly, daily, weekly, and monthly cron jobs.
# Jobs that need different timing may be entered into the crontab as before,
# but most really don't need greater granularity than this.  If the exact
# times of the hourly, daily, weekly, and monthly cron jobs do not suit your
# needs, feel free to adjust them.
#
# Run hourly cron jobs at 47 minutes after the hour:
47 * * * * /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
#
# Run daily cron jobs at 4:40 every day:
40 4 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null
#
# Run weekly cron jobs at 4:30 on the first day of the week:
30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly 1> /dev/null
#
# Run monthly cron jobs at 4:20 on the first day of the month:
20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null

4
2018-03-12 21:50