`cron.daily`はいつ実行されますか?


199

ときのエントリ行うcron.daily(と.weekly.hourly)を実行し、それが設定可能ですか?

私はこれに対する決定的な答えを見つけていませんが、それがあることを望んでいます。

私はRHEL5とCentOS 4を実行していますが、他のディストリビューション/プラットフォームにも最適です。


2
のNetBSD、毎日、毎週、毎月のcronジョブのための時間は、ルートのcrontabに設定されています。
hd1 14年

この質問は、質問がより一般的になるように編集された場合により便利です。少なくとも、RedHatののいずれかのバージョンの問題は、一般的なCentOSのディストリビューションの代わりを作るだけで広く使用され、「あるされていないバージョン4および5(のための生産終了(に似た」人生の終わり)。
トレバー・ボイド・スミス

@TrevorBoydSmith-この質問はほぼ8年前に尋ねられました。新しいバージョン用に更新されたものをお気軽にお問い合わせください。しかし、RHEL 6 2010年4月には存在しませんでしたaccess.redhat.com/articles/3078#RHEL6
ウォーレン

@warren私の意図は、批判することではなく、一般的に質問とスタックオーバーフローを改善することです。(質問が行われたときにRHEL 6が存在しなかったことを理解します。質問には非常に多くの賛成票があるので、より一般的なものにしたほうがいいでしょう。)
トレバーボイドスミス

@TrevorBoydSmith .. CentOS / RHEL 6には既に回答があります:) ...アイデアがあれば、あなたからの良い編集を喜んで承認します。先に進み、あなたが考えていた質問に提案された編集を行います
ウォーレン

回答:


151

あなたが言及するディストリビューションの場合:

CentOS 5.4(RHEL5でも同じである必要があります)

grep run-parts /etc/crontab

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

したがって、cron.dailyは午前4時2分に実行されます。

CentOS 4.8でも同じ


1
これには理由がありますか?私はそれがサーバー上で最も静かな時間だと仮定することができます。
ピクセル開発者

@ Ubuntuで実行されるのは何時ですか?確認方法を教えてください。コマンド出力を理解できない
ナレンドラジャギ

@NarendraJaggi「run-parts」コマンドは「このフォルダー内のすべてを実行する」ことを意味します。これらのディレクトリでrun-partsを実行するcronジョブがあるため、cron.dailyなどのフォルダーが機能します。したがってgrep run-parts /etc/crontab、これらの各ディレクトリに対してrun-partsがいつ呼び出されるかについての指示を見つけるだけです。
ジョーダンライター

2
これは、CentOS 6以降では有効な回答ではなくなりました。スクロールダウンすると、さらに表示されます。
lzap

74

manページから:

 Cron also searches for /etc/anacrontab

/etc/anacrontab 私のシステム(Fedora 12)で:

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

こちらもご覧ください man anacrontab


6
これはの場合CentOS 6です。ありがとう。
mbrownnyc

3
つまり、「1」日ごとに午前5時ですか。申し訳ありませんが、これは何も答えません。
エリッシュ

3
@elysch私の答えの最後の行を繰り返しましょう:「man anacrontab」も参照してください
-leonbloy

2
ここでアナクロンの良い説明。基本的に、anacronに開始時間固定されていませんが、指定された遅延で、最後のプロセスがいつ実行されたかに基づいてプロセスを開始します。プロセスが実行されるはずのときにマシンがオフの場合、指定された遅延(特別な範囲+ランダムな遅延がない場合は@spechalの回答を参照)の後、マシンが復帰するとプロセスを開始します。
storm_m2138

2
@mbrownnycおよびCentOS-7も
トレバーボイドスミス

43

CentOS 6の場合、/ etc / anacrontabをgrepする必要があり、server / laptop / dekstop / etcがオフになっているかどうかによって答えが異なります。

cat /etc/anacrontab 
# /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時から午後10時**(再起動後およびマシンが5分間稼働した後^^)の間で、/ etc / cron.dailyを実行します。再起動がない場合、ジョブは3:05 AM++で実行されます。

** As defined by START_HOURS_RANGE
^^ As defined by FIELD_TWO (i.e. the 5 after the 1 in the cron.daily line)
++ plus a random time between 0 and 45 minutes as defined by RANDOM_DELAY

リファレンス:http : //linux.die.net/man/5/anacrontab


14

SuSEシステム(特にSLES 11.1およびopenSuSE 10.3)の場合、/ etc / cron.dailyスクリプトの毎日の実行時間は、/ etc / sysconfig / cronファイルに設定されたDAILY_TIME変数の値によって制御されます。

DAILY_TIME変数が設定されていない場合、デフォルトは次のとおりです:(最後のブート時間+ 15分)。


ありがとう!SuSEは私にはかなり不透明であり、あなたの答えに感謝します。
dr0i

9

Ubuntuでは、ファイル/ etc / crontabがあり、そこから構成されます。RHとCentosでも似たようなものだと思います。


2
これはUbuntu Lucid 10.04 LTSに適したファイルです。cron.dailyのデフォルト設定は午前6時25分です。
geekQ

Ubuntu 15.04では、まだ午前6時25分に設定されています。しかし、cronはジョブを開始するときにランダム性を挿入する必要があることに気付きました。毎日の仕事で作成されるファイルのタイムスタンプを見ると、早ければ6:26に実行され、他の日では8:04に遅く実行されます。
ステファン

1
Ubuntu 16.04でまだ午前6時25分に設定-毎時17分に毎時。毎日午前6時25分。毎週土曜日の午前6時47分。毎月、月の最初の日の午前6時52分。
WinEunuuchs2Unix

5

CentOS6.x / RedHat6.xは、デフォルトでパッケージcronie-anacronをインストールします。必ず:

yum install cronie-noanacron

yum erase cronie-anacron

次に、/ etc / cron.d / dailyjobsを使用して、毎日、毎週、毎月のジョブに最適なスケジュール時刻を構成します。


2
anacronがインストールされている場合、アンインストールする代わりに、ここで他のコメントに従って/ etc / anacrontabを編集することはできませんか?
シンコデナダ

1
@cincodenadaそれはダニエル・スタントスが示唆していることではありません。
ミケマッカナ

4

Slackware(14.0)を使用していますが、持っていませんでした/etc/crontab。また、anacronディストリビューションの一部ではありません。

私のシステムでの解決策は、crontab -lルートとして実行するのと同じくらい簡単でした:

root@flea:~# crontab -l
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null.  We'll do this here since these jobs should run
# properly on a newly installed system.  If a script fails, run-parts will
# mail a notice to root.
#
# Run the hourly, daily, weekly, and monthly cron jobs.
# Jobs that need different timing may be entered into the crontab as before,
# but most really don't need greater granularity than this.  If the exact
# times of the hourly, daily, weekly, and monthly cron jobs do not suit your
# needs, feel free to adjust them.
#
# Run hourly cron jobs at 47 minutes after the hour:
47 * * * * /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
#
# Run daily cron jobs at 4:40 every day:
40 4 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null
#
# Run weekly cron jobs at 4:30 on the first day of the week:
30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly 1> /dev/null
#
# Run monthly cron jobs at 4:20 on the first day of the month:
20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null

3

以下からの/etc/anacrontab私のUbuntu 9.10システム上:

1       5       cron.daily       nice run-parts --report /etc/cron.daily
7       10      cron.weekly      nice run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly nice run-parts --report /etc/cron.monthly

2

Solarisに関する限り、そのような機能はありません。日常のタスクには通常のcrontabエントリを使用するだけです。


1

OpenSuse 42.xアップデート:

/ etc / crontabは、15分ごとに実行されるはずのファイル/ usr / lib / cron / run-cronsを表示します。

/ etc / sysconfig / cronでDAILY_TIMEと呼ばれる変数を探す/ usr / lib / cron / run-crons

ファイルが表示されます。

# At which time cron.daily should start. Default is 15 minutes after booting
# the system. Example setting would be "14:00".
# Due to the fact that cron script runs only every 15 minutes,
# it will only run on xx:00, xx:15, xx:30, xx:45, not at the accurate time
# you set.

DAILY_TIME=""

必要な時間に設定し、cronを再起動します。

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