web-dev-qa-db-ja.com

Linuxでcron.dailyが実行される時間を変更する方法

Cron.dailyに毎朝特定の時間に実行されるスクリプトがあります。実行時間を変更する必要があります。

Cron.dailyがスクリプトを実行する時間を変更するにはどうすればよいですか?

22
Phil_Parnili

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システム。

24
ewwhite

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
3

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
1
vdboor

行がそこになかった場合、これは何も解決しません。

Cron.dailyが言及されている場所を見つけてみてください。

grep -R cron.daily /etc

それからそこからそれを取ります。

0
mvds