====== Linux:cron ====== ===== cron ===== ==== cronとは ==== * cronは決められた時間にコマンドを実行ささせるコマンド。crondデーモンにより実行される ==== cronの動作 ==== * crontabファイルを読み込み、1分毎に起動すべきコマンドがあれば起動し、crontab の所有者にメールを送信する。 * cronは1分毎にスプールディレクトリ(/var/spool/cron/)または/etc/crontabファイルの最終修正時刻をチェックし、もし変更されていればcrontabファイルを読み直す ===== crontabファイル ===== ==== crontabファイルの場所 ==== === システム共通のcrontabファイル === */etc/crontab === ユーザー毎のcrontabファイル === */var/spool/cron ディレクトリの下にユーザー名で作成される。ユーザー'hoge'の場合 \\ /var/spool/cron/**//hoge//** となる ==== 書式 ==== * 分、時、日、月、曜日、ユーザー名、コマンドの5つの周期(分、時、日、月、曜日)とユーザー名、コマンドの7つのフィールドで構成されている。 \\ ※ ユーザー毎のcrotabファイルにはユーザー名は指定しない 分 時 日 月 曜日 ユーザー名 コマンド === 周期の指定 === - ワイルドカード(*) \\ ワイルドカードを指定した場合、周期の各フィールドは以下となる。\\ 分:0~59 \\ 時:0~23 \\ 日:1~31 \\ 月:1~12 \\ 曜日:0~7(0が日曜日で7と同じ)\\ \\ - リスト指定(,)\\ 実行したい時間を複数指定する。 \\ 例) 10, 20, 30 :分フィールドで指定した場合 10, 20, 30 分に起動する。 \\ \\ - 範囲指定(-) \\ 例) 1-5:曜日フィールドで指定した場合 月曜から金曜に起動する \\ \\ - 間隔指定(/) \\ 例) /2:時間フィールドで指定した場合、2時間ごとに起動する。 ==== crontabの設定 ==== === /etc/crontab === * /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 - 毎時01分に実行される \\ 01 * * * * root run-parts /etc/cron.hourly - 毎日04時02分に実行される \\ 02 4 * * * root run-parts /etc/cron.daily - 毎週日曜日の04時22分に実行される \\ 02 4 * * * root run-parts /etc/cron.daily - 毎月01日04時42分に実行される \\ 02 4 * * * root run-parts /etc/cron.daily === run-parts コマンド === * run-parts コマンドはパラメータで指定されたディレクトリ内の実行可能ファイルをアルファベット順に実行するコマンド。\\ 上記設定の場合、以下のタイミングで実行される。 ===== ユーザー毎の crontab の設定 ===== ==== ユーザー毎の crontab を設定する場合、crontab コマンドを使用する。 ==== === Crontab コマンド === == 編集 == crontab -e == 表示 == crontab -l == 削除 == crontab -r