Cara mengubah waktu cron.daily dijalankan di linux

22

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?


sumber

Jawaban:

24

Pada Red Hat 5 atau lebih, ini dikontrol dalam /etc/crontab.

Penggunaan versi yang lebih baru /etc/anacrontab. Secara default, cron.dailyskrip dijalankan pada 4:02. Pengeditan /etc/crontabakan 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/crontabjuga.

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 crontabhampir semua sistem Linux.

putih
sumber
3
Jangan lupa untuk melakukan sudo systemctl restart cron.servicesetelah Anda memodifikasi ini. Ini berlaku untuk systemdsistem berbasiskan, seperti Debian dan Ubuntu modern.
TranslucentCloud
3

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
mohamed ahmed besha
sumber
Jadi, untuk menjawab pertanyaan tentang bagaimana mengubah jam berapa ini berjalan, saya perlu mengedit START_HOURS_RANGE, benar?
thelr
1

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-cronsperintah memverifikasi cap waktu file dalam /var/spool/cron/lastrunantara 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
vdboor
sumber
0

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.

mvds
sumber
Anda harus sangat hati-hati jika menggunakan perintah ini. Sebagai contoh untuk RedHat saya mengembalikan / etc / crontab dan / etc / anacrontab file. Dan jika Anda menghapus baris dengan entri cron.daily, Anda cukup matikan eksekusi semua skrip yang harus dijalankan setiap hari (bagi saya itu adalah logrotate, tmpwatch, piala, dan sebagainya).
Lukasz Stelmach
2
Saya tidak menyarankan untuk menghapus baris, pertanyaannya adalah di mana memodifikasi waktu cron.daily. Ini adalah bagaimana Anda menemukannya (jadi ini lebih merupakan jenis jawaban "bantu mereka sendiri")
-1

Anda ingin melakukan dua hal:

  1. Hapus skrip dari cron.daily dan letakkan di tempat lain.
  2. Tambahkan entri ke crontab Anda untuk menjalankan skrip yang ditentukan pada waktu yang ditentukan:

00 10 * * * /path/to/script


sumber