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


22

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

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

linux  cron  redhat 

回答:


24

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システムで実行してください


3
sudo systemctl restart cron.serviceこれを変更した後に実行することを忘れないでください。これはsystemd、最新のDebianやUbuntuなどのベースのシステムに当てはまります。
TranslucentCloud

3

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

実行時間を変更する方法の質問に答えるには、START_HOURS_RANGEを編集する必要があります、正しいですか?
thelr

1

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

0

行が存在しない場合、これは何も解決しません。

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

grep -R cron.daily /etc

その後、そこからそれを取ります。


これらのコマンドを使用する場合は、十分に注意する必要があります。たとえば、私のRedHatの場合、/ etc / crontabおよび/ etc / anacrontabファイルを返します。また、cron.dailyエントリで行を削除する場合は、毎日実行する必要があるすべてのスクリプトの実行をオフにするだけです(私にとっては、logrotate、tmpwatch、cupsなど)。
ルカシュステルマック

2
この行を削除することは提案しませんでしたが、質問はcron.dailyの時間を変更する場所でした。これは、あなたがそれを見つける方法です(したがって、これは「彼らが自分自身を助ける」一種の答えでした)

-1

次の2つのことを行います。

  1. cron.dailyからスクリプトを削除し、別の場所に配置します。
  2. crontabにエントリを追加して、指定された時間に指定されたスクリプトを実行します。

00 10 * * * /path/to/script

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.