2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

cronについて

Posted at

はじめに

cronはタイマーを設定して、決まった時間、決まった月日、決まった曜日などに、スクリプトが実行ができるデーモンです。定期的にログを取得するような場合によく使われます。デーモン名はcronですが、コマンドはcrontabになります。

環境

Ubuntu20.4

コマンド例

cronのデーモンが動作しているか確認をします。Ubuntuのデフォルトでは起動しています。

$service --status-all | grep cron

現状の設定を表示するコマンドです。

$crontab -l

設定した内容を削除するコマンドです。くれぐれも誤って実行してしまわないようにして下さい。

$crontab -r

設定内容を編集するコマンドです。エディタを終了した後、文法チェックが流れます。文法チェックで問題がなければ「installing new crontab」と表示されます。エディタでnanoが立ち上がる場合は、viに変更することができます。

$crontab -e

設定例

crontab -eを実行すると、上部に記述の仕方が英語で書かれています。サンプル通りに設定すると、毎日5時0分にコマンドが実行されるようになります。

設定個所のフォーマットは、「* * * * * コマンド」になっています。アスタリスク部分は、左から順番に「分、時、日、月、曜日」となります。

For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

毎月20日 23:59に実行させる例です。時刻は24時間表記です。12で設定すると昼の12時のことになります。

59 23 20 * * ./home/hoge.sh

毎週 金曜日(5) 17:00に実行させる例です。

00 17 * * 5 ./home/hoge.sh

5分間隔で実行させる例です。 /は何分間隔です。

*/5 * * * * ./home/hoge.sh

毎日 11:00に実行させる例です。

0 11 * * * ./home/hoge.sh

Rubyのスクリプトを実行したい場合、このように設定しても実行されません。

1 12 * * * ruby $HOME/hoge.rb 

Rubyのスクリプトを実行する場合は、Rubyのフルパスを指定する必要があります。Rubyがあるパスはwhichで探すことができます。

1 11 * * * ruby /usr/local/rbenv/shims/ruby $HOME/hoge.rb

ログについて

cronを実行すると、cron.logが増大していくことになります。このように設定すると、毎月1日にログがクリアされるようになります。

* * 1 * * sudo cp /dev/null /var/log/cron.log

月~金 12時1分に、Rubyのスクリプトを実行させる例です。エラーになった場合は、ログを出力しています。

1 12 * * 1-5 cd $HOME && /usr/local/rbenv/shims/ruby hoge.rb >> ./log_hoge.log
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?