cronの基礎について学ぶ
システムソリューション部の中川です。
今回はcronの基礎について書いていきます。
cronとは
登録した時間に命令を実行するためのUNIX系OSのデーモンプロセスです。
「毎日〇〇コマンドを実行」「1時間ごとに〇〇コマンドを実行」これらのように
設定した時間になると自動でコマンドを実行してくれます。
書き方
分 | 時 | 日 | 月 | 週 | 例)実行コマンド |
0~59 | 0~23 | 1~31 | 1~12 | 0~7 | echo "test01" >> test.txt |
・書き方の基本は上記のように左から「分」「時」「日」「月」「週」「実行コマンド」となっています。
実際に書いてみる
* * * * * echo "test01" >> /var/www/html/CronTest_01.txt ## 毎分実行
・「*」を設定するとすべて選択になる つまり・・・
「毎分、 /var/www/html/CronTest_01.txt にtest01を書き込む処理」になっています。
こちらのファイルを保存して、3分経過してみると・・・
$ less /var/www/html/CronTest_01.txt
test01 test01 test01
このようにCronTest_01.txtファイルが作成され、cronが3回実行されたので3行分書き込まれます。
10 * * * * echo "test02" >> 【実行コマンド】 ## 毎時間の10分に実行
〇〇時10分になると設定したがコマンドが実行されます。
0 15 26 * * echo "test03" >> 【実行コマンド】 ## 26日15時に実行
26日の15時00分に設定したがコマンドが実行されます。
10 20 * 1 * echo "test04" >> 【実行コマンド】 ## 1月の20時10分に実行
1月の20時10分に設定したがコマンドが実行されます。
週の設定は、0~7までの数字を設定することができ、以下のようになっています。
日 | 月 | 火 | 水 | 木 | 金 | 土 |
0 or 7 | 1 | 2 | 3 | 4 | 5 | 6 |
0 3 * * 7 echo "test05" >> /var/www/html/CronTest_05.txt ## 日曜日の3時00分に実行
日曜日の3時00分にに設定したがコマンドが実行されます。
30-40 * * * * 【実行コマンド】
そのほかにも上記のように記述すると・・ 30分から40分までの間1分刻み設定したコマンドを実行します。
これで自分以外が設定したcronでもいつ実行されるかは読むこともできるようになったと思います。
まとめ
自分は運用でcron設定を見ることが多く
例えば負荷が上昇している可能性として、cronに設定されている重い処理などが原因になっていることもあります。
〇〇時00分のようなタイミングで急激に負荷が上昇している場合、
psコマンドで確認したときにcronプロセスが実行されていた場合などに
cronの設定を見てみると解決の糸口になるかもしれません。