| (同じ利用者による、間の3版が非表示) | |||
| 15行目: | 15行目: | ||
# | | | | | | # | | | | | | ||
# * * * * * username command-to-be-executed | # * * * * * username command-to-be-executed | ||
<br><br> | |||
== Cronの仕組み == | |||
crontabファイルを編集してCronの設定を変更した場合、変更内容は即座に反映される。<br> | |||
LinuxおよびCronサービスの再起動は不要である。<br> | |||
<br> | |||
Cronは、以下に示すような仕組みで動作する。<br> | |||
# Cronデーモンが常に動作しており、1分ごとにcrontabファイルを確認する。 | |||
# crontabファイルが変更されている場合、Cronデーモンはその内容を読み込み、新しいスケジュールに基づいてジョブを実行する。 | |||
# したがって、crontabファイルを保存した時点で、次の1分以内に新しい設定が有効になる。 | |||
<br> | |||
ただし、以下の点に注意が必要である。<br> | |||
* crontabコマンドで編集を行った場合は自動的に認識されるが、直接crontabファイルを編集した場合は、編集後にCronデーモンにリロードを指示するためのコマンドの実行が推奨される。 | |||
*: <code>sudo systemctl reload cron</code> | |||
* crontabファイルにシンタックスエラーがある場合、Cronデーモンはそのファイルを読み込まないため、編集内容が反映されない。 | |||
<br> | |||
したがって、多くの場合は、Cronの設定変更は即座に反映されますが、確実を期すためには編集後に再読み込みを行うことが望ましいと言える。<br> | |||
特に、Cronにシンタックスエラーがあると反映されないため、設定後はジョブが意図通り動作するかどうかを確認する。<br> | |||
<br><br> | <br><br> | ||
| 59行目: | 77行目: | ||
| -u <ユーザ名> || ユーザを指定してcrontabを実行する。(rootユーザのみ使用可能)<br>省略した場合、crontabコマンドを実行したユーザで設定される。 || <code>crontab -u <ユーザ名> -l</code> | | -u <ユーザ名> || ユーザを指定してcrontabを実行する。(rootユーザのみ使用可能)<br>省略した場合、crontabコマンドを実行したユーザで設定される。 || <code>crontab -u <ユーザ名> -l</code> | ||
|- | |- | ||
| -l || crontabの設定内容を表示する。 || crontab -l | | -l || crontabの設定内容を表示する。 || <code>crontab -l</code> | ||
|- | |- | ||
| -e || crontabの設定を行う。<br><u>'''設定を削除する[r]キーと隣り合わせなので注意すること。'''</u> || <code>crontab -e</code> | | -e || crontabの設定を行う。<br><u>'''設定を削除する[r]キーと隣り合わせなので注意すること。'''</u> || <code>crontab -e</code> | ||
| 245行目: | 263行目: | ||
===== for文を使用 ===== | ===== for文を使用 ===== | ||
for文を使用することで、1行で秒指定を行うことが出来る。<br> | for文を使用することで、1行で秒指定を行うことが出来る。<br> | ||
<秒間隔>の部分にsleepさせたい秒数を設定する。<br> | |||
* * * * * for i in `seq 0 | * * * * * for i in `seq 0 <秒間隔> 59`;do (sleep ${i} ; 実行コマンド) & done; | ||
<br> | <br> | ||
例えば、10秒毎に実行する場合は、下記の通りになる。<br> | 例えば、10秒毎に実行する場合は、下記の通りになる。<br> | ||