LoginSignup
0
2

More than 5 years have passed since last update.

crontabの設定

Posted at

crontabとは

設定した時間に設定したコマンドを実行する管理コマンドです。

以下wikiより抜粋
Unix系OSにおいて、コマンドの定時実行のスケジュール管理を行うために用いられるコマンドである。
一般にcrontabコマンドで編集されたスケジュール内容は、crondデーモンにより実行される。
crondはバックグラウンドで稼動し、毎分ごとに実行すべきスケジュールがないか確認し、もし実行すべきジョブがあれば、それを実行する

crontabのコマンド

crontabのオプションと意味

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

-u: cronを設定するユーザーを指定
-l: cronを一覧で表示
-r: cronの設定を全消去
-e: cronを設定するエディタを起動する

以下コマンドでログインしているユーザーで設定ができます。

crontab -e

編集時の書式は以下となります。

書式
分 時 日 月 曜日 <実行コマンド>

分 0-59 
時 0-23 
月内日 1-31 
月 1-12
曜日 0-7 (0 と 7 は日曜日)
※「*」は全てが対象となります。

・基本指定

毎月1日の14時15分にhoge.shを実行する設定

crontab
15 14 1 * *     /bin/sh /home/hoge.sh

毎日動かす場合は下記となります。

crontab
15 14 * * *     /bin/sh /home/hoge.sh

・複数指定(,)

15分、20分に動かす場合は下記となります。

crontab
15,20 14 * * *     /bin/sh /home/hoge.sh

・間隔指定(/)

15分毎に動かす場合は下記となります。

crontab
*/15 * * * *     /bin/sh /home/hoge.sh

・範囲指定(-)

14時から20時の15分の時に動作します。一日7回。

crontab
15 14-20 * * *     /bin/sh /home/hoge.sh

設定ファイルの読み込み

crontabコマンドで直接編集する方法でも良いのですが、
オプションのe(編集)とr(削除)が隣にあり誤って削除する可能性もあり、
別ファイルで管理して読み込んだ方が良いそうです。
下記コマンドで反映できます。

crontab
crontab [ -u user ] file 

誤って削除した場合も、元のファイルがある為、修正が可能です。

備考

・cronの実行コマンドは、実行ユーザーのホームディレクトリで実行されます。
 実行パスはフルパスで記載すれば、特に気にしなくて大丈夫です。
・実行権限は実行ユーザーとなります。(ファイル・フォルダ操作をする処理の場合は意識する必要がある)
・cronの標準出力、標準出力エラーは、mailコマンドを経由して実行ユーザーのメールボックスに送信されます。
 内部でエラー処理を行ってる場合は出力の必要が無いので、下記のように捨ててしまうのも。
 ※ここでは「>/dev/null 2>&1」は出力を捨てるとだけ覚えて居れば

crontab
15 14 1 * *     /bin/sh /home/hoge.sh

以上crontabの備忘録。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2