Saya memiliki skrip di cron.daily yang berjalan pada waktu tertentu setiap pagi. Saya perlu mengubah waktu dijalankan.
Bagaimana cara mengubah waktu cron.daily menjalankan skrip?
Saya memiliki skrip di cron.daily yang berjalan pada waktu tertentu setiap pagi. Saya perlu mengubah waktu dijalankan.
Bagaimana cara mengubah waktu cron.daily menjalankan skrip?
Jawaban:
Pada Red Hat 5 atau lebih, ini dikontrol dalam /etc/crontab
.
Penggunaan versi yang lebih baru /etc/anacrontab
. Secara default, cron.daily
skrip dijalankan pada 4:02. Pengeditan /etc/crontab
akan mengubah waktu itu.
# 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
Pada sistem Debian / Ubuntu, ini dikontrol /etc/crontab
juga.
Sebagai contoh; instalasi default 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 )
#
Dan dalam kedua kasus tersebut, Anda dapat menemukan detail lebih lanjut tentang sintaks apa yang digunakan di sini: http://linux.die.net/man/5/crontab atau dengan menjalankan man 5 crontab
hampir semua sistem Linux.
di RHEL / CentOS 6 dan di atasnya
# /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
Pada openSUSE, crontab terlihat seperti:
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
The run-crons
perintah memverifikasi cap waktu file dalam /var/spool/cron/lastrun
antara lain. Ketika waktu sejak eksekusi terakhir berakhir, itu akan menjalankan file cron lagi.
Waktu dapat dipengaruhi oleh menyentuh file. Misalnya, untuk mengaturnya ke 2012-11-17 03:15:
touch -t 201211140315 /var/spool/cron/lastrun/cron.daily
Jika garis itu tidak ada, ini tidak akan menyelesaikan apa pun.
Coba cari di mana cron.daily disebutkan, dengan
grep -R cron.daily /etc
Kemudian ambil dari sana.
Anda ingin melakukan dua hal:
00 10 * * * /path/to/script
sudo systemctl restart cron.service
setelah Anda memodifikasi ini. Ini berlaku untuksystemd
sistem berbasiskan, seperti Debian dan Ubuntu modern.