CentOSでcronを設定して実行する

2017年5月9日

cronって??

cronとは、定期的にコマンドを実行させるためのプロセスです。コマンド、シェルスクリプト、各種プログラムを実行できます。

WebサーバやDBサーバだと、DBやソースのバックアップ等、定期的に実行が必要な処理を登録しておくことで開発にかかる手間を軽減してくれます。

サーバの管理をやってると、定期的に処理を実行しないといけないことが多々ありますが、cronを設定することで毎回手作業で行っていたものを自動でやってもらえるようになります。

前提条件

cronを使用するためには、crondが起動していることが前提となります。
下記コマンドを実行し、crondが起動しているか確認します。

# /etc/rc.d/init.d/crond status

「crond (pid xxxx) を実行中…」と表示されればcrondが起動しています。
crondが起動していない場合は下記コマンドを実行し、crondを起動します。

# /etc/rc.d/init.d/crond start

cronの登録方法

cronを登録するにはcrontabコマンドを利用します。

# crontab -e

上記コマンドを実行するとcrontabが編集可能になります。
crontabにcronを追加する場合は以下のフォーマットを使用します。

分 時 日 月 曜日 コマンド
分は0〜59の数字
時は0〜23の数字
日は1〜31の数字
月は1〜12の数字
曜日は0〜7の数字(0,7は日曜日、1〜6が月〜金)
コマンドはフルパスもしくはカレントディレクトリからの相対パス
パスが通っていれば直接コマンドを指定できます。
サンプル
*/30 * * * * sample1.sh → 30分おきに実行する
*    3 * * * sample2.sh → 毎日3時に実行する
*/5  * * * * sample3.sh → 5分おきに実行する

登録したcronの確認方法

現在登録されているcronの一覧を表示するには、下記コマンドを実行します。

crontab -l