เมื่อใดที่รายการในcron.daily
(และ.weekly
และ.hourly
) เรียกใช้และตั้งค่าได้หรือไม่
ฉันไม่พบคำตอบที่ชัดเจนและหวังว่าจะมีคำตอบ
ฉันกำลังใช้ RHEL5 และ CentOS 4 แต่สำหรับ distros / แพลตฟอร์มอื่น ๆ ก็ยอดเยี่ยมเช่นกัน
เมื่อใดที่รายการในcron.daily
(และ.weekly
และ.hourly
) เรียกใช้และตั้งค่าได้หรือไม่
ฉันไม่พบคำตอบที่ชัดเจนและหวังว่าจะมีคำตอบ
ฉันกำลังใช้ RHEL5 และ CentOS 4 แต่สำหรับ distros / แพลตฟอร์มอื่น ๆ ก็ยอดเยี่ยมเช่นกัน
คำตอบ:
สำหรับการแจกแจงที่คุณพูดถึง:
บน 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
grep run-parts /etc/crontab
เพียงแค่ค้นหาคำแนะนำเมื่อเรียกใช้ส่วนต่างๆสำหรับแต่ละไดเรกทอรีเหล่านี้
จากหน้าคน:
Cron also searches for /etc/anacrontab
/etc/anacrontab
ในระบบของฉัน (Fedora 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
CentOS 6
นี้เป็นกรณีที่มี ขอบคุณ
สำหรับ 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
ดังนั้นระหว่างเวลา 15.00 น. ถึง 22.00 น. (หลังจากรีบูตเครื่องและหลังเครื่องใช้งานได้ 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
สำหรับระบบ SuSE (เฉพาะ SLES 11.1 และ openSUSE 10.3) เวลาทำงานประจำวันของสคริปต์ /etc/cron.daily ถูกควบคุมโดยค่าของDAILY_TIMEชุดตัวแปรใน/ etc / sysconfig / cronไฟล์
หากไม่ได้ตั้งค่าตัวแปร DAILY_TIME ไว้ค่าเริ่มต้นจะเป็น: (เวลาบูตครั้งสุดท้าย + 15 นาที)
บน Ubuntu คุณจะพบไฟล์ / etc / crontab จากที่กำหนดค่าไว้ ฉันเดาว่ามันคล้ายกับ RH และ Centos
CentOS6.x / RedHat6.x ติดตั้งตามค่าเริ่มต้นแพ็คเกจ cronie-anacron คุณต้อง:
ยำติดตั้ง cronie-noanacron
ยำลบ cronie-anacron
ตอนนี้คุณมี /etc/cron.d/dailyjobs เพื่อกำหนดเวลาที่ดีที่สุดสำหรับงานรายวันรายสัปดาห์และรายเดือนของคุณ
ผมใช้ Slackware (14.0) /etc/crontab
และไม่ได้มี นอกจากนี้anacron
ไม่ได้เป็นส่วนหนึ่งของการกระจาย
โซลูชันในระบบของฉันนั้นเรียบง่ายเหมือนใช้งานcrontab -l
เป็น root:
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
จาก/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
ไม่มีสิ่งอำนวยความสะดวกเช่นนี้เท่าที่ Solaris เกี่ยวข้อง เพียงใช้รายการ crontab ปกติสำหรับงานประจำวัน
อัปเดต 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=""
ตั้งเวลาที่คุณต้องการและเริ่ม cron ใหม่ผ่านทาง;
systemctl restart cron.service