ฉันมีสคริปต์เป็น cron.daily ที่ทำงานในบางเวลาทุกเช้า ฉันต้องการเปลี่ยนเวลาที่ใช้งานอยู่
ฉันจะเปลี่ยนเวลา cron.daily เรียกใช้สคริปต์ได้อย่างไร
ฉันมีสคริปต์เป็น cron.daily ที่ทำงานในบางเวลาทุกเช้า ฉันต้องการเปลี่ยนเวลาที่ใช้งานอยู่
ฉันจะเปลี่ยนเวลา cron.daily เรียกใช้สคริปต์ได้อย่างไร
คำตอบ:
ใน Red Hat 5 หรือเก่ากว่าจะมีการควบคุมสิ่ง/etc/crontab
ต่อไปนี้
/etc/anacrontab
เวอร์ชั่นใหม่ใช้ โดยค่าเริ่มต้นcron.daily
สคริปต์จะทำงานที่ 4:02 การแก้ไข/etc/crontab
จะแก้ไขเวลานั้น
# run-parts
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
บนระบบ Debian / Ubuntu สิ่งนี้จะถูกควบคุม/etc/crontab
เช่นกัน
ตัวอย่างเช่น; การติดตั้งเริ่มต้นของ Ubuntu 12.04:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
และในทั้งสองกรณีคุณอาจพบรายละเอียดเพิ่มเติมเกี่ยวกับไวยากรณ์ที่จะใช้ที่นี่: http://linux.die.net/man/5/crontabหรือทำงานman 5 crontab
บนระบบ Linux เกือบทุกระบบ
ใน RHEL / CentOS 6 ขึ้นไป
# /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
ใน openSUSE crontab จะมีลักษณะดังนี้:
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1
run-crons
คำสั่งตรวจสอบการประทับเวลาของไฟล์ใน/var/spool/cron/lastrun
หมู่สิ่งอื่น ๆ เมื่อเวลาตั้งแต่การดำเนินการครั้งสุดท้ายหมดอายุมันจะเรียกใช้ไฟล์ cron อีกครั้ง
เวลาสามารถมีอิทธิพลโดยการสัมผัสไฟล์ ตัวอย่างเช่นหากต้องการตั้งเป็น 2012-11-17 03:15:
touch -t 201211140315 /var/spool/cron/lastrun/cron.daily
หากไม่มีเส้นตรงสิ่งนี้จะไม่แก้ไขอะไรเลย
ลองค้นหาที่พูดถึง cron.daily ด้วย
grep -R cron.daily /etc
จากนั้นนำมาจากที่นั่น
คุณต้องการทำสองสิ่ง:
00 10 * * * /path/to/script
sudo systemctl restart cron.service
หลังจากที่คุณแก้ไข สิ่งนี้เป็นจริงสำหรับsystemd
ระบบพื้นฐานเช่น Debian และ Ubuntu ที่ทันสมัย