Centosのcronの設定方法について

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

cronとは?

cronとは、UNIX系システムの常駐プログラム(デーモン)の一種で、ユーザの設定したスケジュールに基づいて指定したコマンドやシェルスクリプトなどを自動実行してくれるプログラム。
IT用語辞典

設定方法

1.準備

cronを設定するにはcronが起動しているか確認する必要があります。

/etc/rc.d/init.d/crond status
crond (pid xxx) を実行中

つぎにcronの設定ファイルは /etc/crontabなので確認してみましょう。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

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

なにも設定されていないとこんな感じで表示されると思います。

2.設定

cronを設定するにはcrontabコマンドを使用します。

書式は下記の通りです。

crontab [- u user] {-l|-r|-e}

-eオプションをつけて実行すると、cronの設定ファイルであるcrontabを編集することができます。

※-eオプションを使うべきではないという意見もあるそうなので参考までに

crontab -e は「絶対に」使ってはいけない - ろば電子が詰まっている

crontab -e

実行するとエディタが起動しますので、コマンドのスケジュールを記述していきます。

書式としては下記の通りです。

分 時 日 月 曜日 実行コマンド

たとえば、毎時1分に/home/Me/bin/hoge.shを実行するとしたら下記のように記載します。

01 * * * * /home/Me/bin/hoge.sh

最後に設定が完了したらcrondを再起動して、設定を反映させましょう


/etc/init.d/crond restart

3. run-partsの利用について

上のcron設定ファイルに下記のような記述がありました。

run-parts

01 * * * * root run-parts /etc/cron.hourly

これは /etc/cron.hourlyディレクトリに保存されている実行ファイルを毎時1分に実行させるという意味です。
なので、実行ファイルをcron.hourlyディレクトリに入れてさえおけば毎時1分に実行させることができます。

run-partsで指定されるディレクトリ

/etc/cron.hourly 1時間に1回実行
/etc/cron.daily 1日に1回実行
/etc/cron.weekly 1週間に1回実行
/etc/cron.monthly 1ヶ月に1回実行

利用方法によりますが、「2.」で説明した「crontabファイル」に直接内容を設定するよりもこちらの方法のほうが便利ですし、安全です。

さらに、crondの再起動も不要です。

4. 実行結果の確認

ログを確認してみる

vi /var/log/cron

参考

cronの設定・実行 | WEBサービス創造記

crontabの書き方 | server-memo.net
設定例がわかりやすく参考になります。

/etc/crontabと/etc/cron.d設定ファイルの書き方 | server-memo.net
cronが動かない場合の対処方法が丁寧に説明されています。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*

CAPTCHA