LoginSignup
1
0

More than 3 years have passed since last update.

CronTabを作成してみる

Last updated at Posted at 2019-11-07

Crontabとは

JOBを定期的に実行してくれるコマンドです。

登録方法

Cronの設定ファイルに記載することで実行してもらえます。
設定ファイルの起動は以下。

$ crontab -e

こちらを実行するとエディタが開かれるので、
一番下に実行したいコマンドを記載。
今回はShellScriptを記載し、それを定期実行するCronTabを設定しました。
なお、ShellScriptはchmodで権限を755にしておくこと。


*/5 * * * * ./home/vagrant/test.sh

Cron設定ファイルの記載方法

「時間 実行するコマンド」と記載します。
時間は左から「分 時間 日 月 曜日」で記載します。
時は24時間表記、曜日は0から6まで日曜日から土曜日までに対応し、さらに7はまた日曜に対応。
また、ワイルドカードの使用、間隔の指定が可能です。

書き方 意味
00 8 1 * * 毎月1日の8時に定期実行
*/1 * * * * 毎分定期実行
00 12 * * * 1 毎週月曜日に定期実行

登録されているCrontabの確認

Crontab -l で設定されたcrontabを確認可能。
なお、ユーザー毎に設定するものであるため、
各ユーザーの設定値を確認する場合は、

for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done

で可能。

ほんとに実行されたよね?の確認。。

/var/log/cronに実行ログがある。
下に追記されているのでtailなどで見るのが手っ取り早い。

実行されてない場合の確認方法

ログ出力

Cron設定のコマンドにリダイレクトを書くだけです。

crontab -e
*/5 * * * * bash /home/vagrant/test.sh >> /home/vagrant/test.log 2>&1

>>でリダイレクトすれば追記してくれます。
なお、最後の2>&1は標準出力もエラー出力もする設定。
標準出力のみの場合はtest.sh 1> test.log
エラーのみでいい場合はtest.sh 2> error_test.log
とする。

結局は

Crontabに登録するコマンドを直叩きしてうまくいくかどうか確認して、
うまくいってからCrontabに登録するのが一番確実。
一行目のおまじない忘れとかスペース問題とかCrontabのログより気が付きやすいので。

bash /home/vagrant/test.sh >> /home/vagrant/test.log 2>&1

参考

crontabコマンドについてまとめました 【Linuxコマンド集】
cronのログを見よう
cronがうまく動かないときの調査

1
0
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
1
0