はてなブログからWordPressにサイトを移行対応中です。まだ画像の表示やレイアウトの崩れがありますのでご了承下さい。

CentOSでcronを設定する方法

この記事では、CentOS 6(ここでは6.9)にcronを設定する方法をご紹介します。

CentOS 6からは過去のバージョンとはcronの仕様が異なるanacronが採用されています。馴染みのないanacronを削除し、使い慣れたcronを設定していきます。

anacronは従来のcronと異なり、ジョブの実行時刻を指定することができません。実行時刻は一定時間の中でOSがスケジューリングして実行します。

今までの感覚で言うとなんとも使いづらい感じがしますが、一つのサーバーに仮想マシンが複数稼働している場合、特定の時間にジョブの実行が重なるとサーバーに高負荷をかけてしまいます。そんな時にはanacronは重宝する機能だといえるでしょう。

スポンサーリンク
目次

設定手順

下記のコマンドで従来のcronをインストールし、anacronを削除します。

$ sudo yum -y install cronie-noanacron #通常のcronをインストール
$ sudo yum remove cronie-anacron #anacronを削除

anacronの設定ファイルを開きます。

$ sudo vi /etc/cron.d/dailyjobs

不要になった設定を全てコメントアウトします。

#SHELL=/bin/bash
#PATH=/sbin:/bin:/usr/sbin:/usr/bin
#MAILTO=root
#HOME=/
# run-parts
#02 4 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
#22 4 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
#42 4 1 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly

crontabを開いて従来のcronの設定を行います。

$ sudo vi /etc/crontab

以下の通り、エラー時のメールの送信先と基本的なジョブの実行時間を指定します。

MAILTO= hogehoge@hitori-josys.me
00 0 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
20 0 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
40 0 1 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly

設定ファイルを保存して終了後、サービスを起動させ、システム起動時にも自動で起動するように設定すれば完了です。これで旧バージョンのcronと同じ動作をします。

$ sudo service crond start
$ sudo chkconfig crond on
この記事をシェア
  • URLをコピーしました!
目次