`Cron.daily` कब चलता है?


199

जब में प्रविष्टियों कर cron.daily(और .weeklyऔर .hourly) रन, और यह विन्यास योग्य है?

मुझे इसका कोई निश्चित उत्तर नहीं मिला है, और मुझे उम्मीद है कि एक है।

मैं RHEL5 और CentOS 4 चला रहा हूं, लेकिन अन्य डिस्ट्रोस / प्लेटफॉर्म के लिए भी बढ़िया होगा।


2
पर NetBSD , दैनिक, साप्ताहिक, मासिक cronjobs के लिए बार जड़ के crontab में स्थापित कर रहे हैं।
एचडी

यह प्रश्न अधिक उपयोगी होगा यदि प्रश्न को अधिक सामान्य होने के लिए संपादित किया गया था। बहुत कम से कम प्रश्न को रेडहैट के किसी भी संस्करण के लिए सामान्य बनाते हैं, केवल 4 और 5 के संस्करणों के बजाय सेंटोस डिस्ट्रोस (जो व्यापक रूप से उपयोग नहीं किए जाते हैं और " उत्पादन का अंत " हैं ( जीवन के अंत के समान )।
ट्रेवर बॉयड स्मिथ

@TrevorBoydSmith - यह सवाल लगभग 8 साल पहले पूछा गया था। नए संस्करणों के लिए एक अद्यतन पूछने के लिए स्वतंत्र महसूस करें। लेकिन अप्रैल 2010 में RHEL 6 भी मौजूद नहीं था : access.redhat.com/articles/3078#RHEL6
वॉरेन

@ मेरे इरादे की आलोचना करना नहीं है, बल्कि सामान्य रूप से प्रश्न और स्टैकओवरफ़्लो में सुधार करना है। (मुझे लगता है कि आरएचईएल 6 मौजूद नहीं था जब सवाल पूछा गया था। क्योंकि सवाल में कई बदलाव हैं, अब इसे और अधिक सामान्य होना अच्छा होगा।)
ट्रेवर बॉयड स्मिथ

@TrevorBoydSmith .. CentOS / RHEL 6 के लिए पहले से ही एक उत्तर है :) ... अगर आप कुछ विचार रखते हैं, तो मुझे आपसे अच्छे संपादन स्वीकृत करने में खुशी होगी। आगे बढ़ें और उस प्रश्न के लिए सुझाए गए संपादन करें जो आपने सोचा है
वॉरेन

जवाबों:


151

आपके द्वारा उल्लिखित वितरण के लिए:

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 पर समान


1
क्या इसके पीछे कोई कारण है? मैं केवल यह मान सकता हूं कि यह सर्वर पर सबसे शांत समय होगा।
पिक्सेल डेवलपर

@ उबंटू में क्या समय चलता है? क्या आप कृपया बता सकते हैं कि मैं इसे कैसे देख सकता हूँ? मैं कमांड आउटपुट को समझने में सक्षम नहीं हूँ
नरेंद्र जग्गी

@NarendraJaggi "रन-पार्ट्स" कमांड का अर्थ है "इस फ़ोल्डर में सब कुछ चलाएं"। Cron.daily, आदि फोल्डर काम करते हैं क्योंकि इन डायरेक्ट्रीज़ पर रन-पार्ट्स निष्पादित करने के लिए क्रोन जॉब होता है। तो grep run-parts /etc/crontabबस जब इन भागों में से प्रत्येक के लिए रन-पुर्ज़े को कहा जाता है, तो निर्देश पाता है।
जॉर्डन रीटर

2
यह अब CentOS 6 या उच्चतर के लिए मान्य उत्तर नहीं है, और अधिक के लिए नीचे स्क्रॉल करें।
लाज़प

74

आदमी पृष्ठ से:

 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


6
यही हाल है CentOS 6। धन्यवाद।
mbrownnyc

3
इसका मतलब है कि 5am हर "1" दिन ?. क्षमा करें, लेकिन यह कुछ भी नहीं जवाब देता है।
ईलिश

3
@elysch मुझे अपने उत्तर की अंतिम पंक्ति दोहराने दें: "मैन anacrontab" भी देखें
leonbloy

2
यहाँ एनाक्रॉन की अच्छी व्याख्या । मूल रूप से, एनाक्रॉन का कोई निश्चित प्रारंभ समय नहीं होता है , बल्कि अंतिम प्रक्रिया चलने के आधार पर प्रक्रिया शुरू होगी, एक निर्दिष्ट देरी के साथ। यदि मशीन बंद हो गई है जब प्रक्रिया चलनी चाहिए थी , तो यह मशीन शुरू होने पर प्रक्रिया शुरू कर देगी, निर्दिष्ट देरी के बाद (कोई विशेष रेंज + यादृच्छिक देरी को रोककर, @spechal द्वारा उत्तर देखें)।
तूफ़ान_एम २१३।

2
@mbrownnyc और CentOS-7 भी
ट्रेवर बॉयड स्मिथ

43

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

इसलिए, 3AM और 10 PMAY के बीच (रिबूट के बाद और मशीन के 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


14

SuSE सिस्टम (विशेष रूप से SLES 11.1 और OpenSuSE 10.3) के लिए /etc/cron.daily स्क्रिप्ट का दैनिक रन समय / etc / sysconfig / cron फ़ाइल में सेट DAILY_TIME चर के मान से नियंत्रित होता है ।

यदि DAILY_TIME चर सेट नहीं किया गया है, तो यह चूक करता है: (अंतिम बूट + 15 मिनट का समय)।


बहुत बहुत धन्यवाद! SuSE मेरे लिए अपारदर्शी है और मैं आपके उत्तर की सराहना करता हूं।
dr0i

9

उबंटू पर, आपको एक फ़ाइल / etc / crontab मिलेगी, जहाँ से इसे कॉन्फ़िगर किया गया है। मुझे लगता है कि यह आरएच और सेंटोस पर कुछ समान है।


2
यह Ubuntu Lucid 10.04 LTS के लिए सही फ़ाइल है। मेरी डिफ़ॉल्ट सेटिंग 6:25 cron.daily के लिए है।
geekQ

अभी भी उबंटू 15.04 पर सुबह 6:25 के रूप में सेट है। लेकिन मुझे लगता है कि क्रॉन को नौकरियों को शुरू करने के समय में कुछ यादृच्छिकता डालना होगा। फाइलों की टाइमस्टैम्प को देखते हुए मेरी दैनिक नौकरी बन जाती है, मैं देखता हूं कि कुछ दिनों में यह 6:26 तक चलता है, और दूसरों पर सुबह 8:04 बजे तक चलता है।
स्टीफन

1
अभी भी उबंटू 16.04 - सुबह 17: 30 बजे पिछले घंटे पर सेट किया गया है। रोजाना सुबह 6:25 बजे। शनिवार सुबह 6:47 बजे। महीने के पहले दिन सुबह 6:52 बजे।
विनयुनुच्स

5

CentOS6.x / RedHat6.x पैकेज cronie-anacron डिफ़ॉल्ट रूप से स्थापित करता है। आपको करना होगा:

yum cronie-noanacron स्थापित करें

yum इरानी क्रोन-एनाक्रॉन

फिर आपके पास अब अपने दैनिक, साप्ताहिक और मासिक नौकरियों के लिए सबसे अच्छा समय निर्धारित करने के लिए /etc/cron.d/dailyjobs है।


2
यदि एनाक्रॉन स्थापित किया गया है, तो क्या आप इसे अनइंस्टॉल करने के बजाय अन्य टिप्पणियों के अनुसार सिर्फ / / आदि एनाक्रोसैब को संपादित नहीं कर सकते हैं?
सिनकोडेनाडा

1
@cincodenada डैनियल स्टान्टोस सुझाव नहीं दे रहा है।
मिकमेकाना

4

मैं स्लैकवेयर (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

3

से /etc/anacrontabमेरी Ubuntu 9.10 सिस्टम पर:

1       5       cron.daily       nice run-parts --report /etc/cron.daily
7       10      cron.weekly      nice run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly nice run-parts --report /etc/cron.monthly

2

जहां तक ​​सोलारिस का सवाल है, ऐसी कोई सुविधा नहीं है। बस दैनिक कार्यों के लिए नियमित रूप से crontab प्रविष्टियों का उपयोग करें।


1

OpenSuse 42.x अपडेट:

/ etc / crontab एक फ़ाइल / usr / lib / cron / run-crons दिखाता है जो हर 15 मिनट में चलना चाहिए।

/ usr / lib / cron / run-crons बदले में (कोड की लाइनें हो सकती हैं) जो DAILY_TIME / / etc / sysconfig / cron नामक एक चर की तलाश में है

फ़ाइल से पता चलता है;

# At which time cron.daily should start. Default is 15 minutes after booting
# the system. Example setting would be "14:00".
# Due to the fact that cron script runs only every 15 minutes,
# it will only run on xx:00, xx:15, xx:30, xx:45, not at the accurate time
# you set.

DAILY_TIME=""

इसे उस समय तक सेट करें जब आपको ज़रूरत हो और क्रोन को फिर से शुरू करें;

systemctl restart cron.service
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.