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
それからそこからそれを取ります。