「crontab」の版間の差分

提供: FreeBSD入門
移動: 案内検索
(ページの作成:「crontab ('''クロンタブ''', クローンタブ、クーロンタブ)とは、個々のユーザの crontab ファイルをメンテナンスするコマンドで...」)
 
(相違点なし)

2015年5月30日 (土) 13:02時点における最新版

crontab (クロンタブ, クローンタブ、クーロンタブ)とは、個々のユーザの crontab ファイルをメンテナンスするコマンドです。また、システムのコマンド実行スケジュールの /etc/crontab を指します。

読み方

crontab
くろんたぶ
cron
くろん

概要

cron(クロン,クーロン、クローン, /usr/sbin/cron)は、スケジュールされたコマンドを実行するためのデーモンプログラムです。cronデーモン自体は、/etc/rc や /etc/rc.local から起動されます。

cron は、 /etc/passwd のアカウント名から /var/cron/tabs で crontab ファイルを検索します。 crontab ファイルが見つかったら、メモリにロードします。 cron は、異なるフォーマットの /etc/crontab も検索します。

cron は、毎分起動され、すべての crontab を観察します。

crontabは、cronが実行する crontab のファイルの作成や削除、表示などを行えるコマンドです。

読み方

cronの発音は、クロンで良いですが、

  • クロン
  • クーロン
  • クローン

などと呼ばれ、crontabも同様に、

  • クロンタブ
  • クーロンタブ
  • クローンタブ

などと呼ばれます。

インストール

デフォルトで組み込まれています。

設定

crontab の利用を許しているユーザ、禁止しているユーザを設定できます。

/var/cron/allow
crontabの利用を許されたユーザのリスト
/var/cron/deny
:crontabの利用を禁止されたユーザのリスト
/var/cron/tabs
個人のcrontabファイルのディレクトリ

使い方

コマンドラインオプション

usage: crontab [-u user] file
       crontab [-u user] { -e | -l | -r }

設定を表示する

crontab -l

現在のcrontabを削除する

crontab -r

現在のcrontabをエディタで編集する

VISUAL もしくは EDITOR 環境変数で指定されたエディタで現在のcrontabを編集します。編集後に、自動的に、変更されます。

crontab -e

他のユーザのcrontabの設定

-u オプションでほかのユーザの設定を確認できます。

sudo crontab -u foo -l

crontabの設定をバックアップする

crontabコマンドを使用して、crontabの設定をバックアップできます。

crontab -l > crontab.backup

crontabにファイルの内容を読み込む

crontab.txtの内容をcrontabコマンドで読み込むことができます。

crontab crontab.txt

crontabの書き方

crontabには、特殊な書式があります。何月何日何時何分に、なんのコマンドを実行する、などの設定をします。

毎分コマンドを実行する

* * * * * $HOME/bin/foo.sh

10分おきにコマンドを実行する

* */10 * * * $HOME/bin/foo.sh

毎晩夜中に一度だけコマンドを実行する

毎日、3時5分にコマンドを実行する例です。

5 3 * * * $HOME/bin/foo.sh

毎月一度だけコマンドを実行する

毎日、1日の3時5分にコマンドを実行する例です。

5 3 1 * * $HOME/bin/foo.sh

cronの出力を捨てる

良いか、悪いかは、別にして、cron で実行されたコマンドの出力がメールで送信されて困る場合などに、/dev/null に捨ててしまうことがあります。

5 3 1 * * $HOME/bin/foo.sh > /dev/null 2>&1

cronの出力をloggerコマンドに渡す

loggerコマンドでログファイルに記録する方法もあります。

5 3 1 * * $HOME/bin/foo.sh 2>&1 | logger -t mycron -p local0.info

cronの出力をfluentdに渡す

cronの出力をfluentdに渡す方法もあります。

5 3 1 * * $HOME/bin/foo.sh 2>&1 | fluent-agent-lite -f msg cron.command - fluentd-srv localhost

ログ

cronの実行結果は、/var/log/cron に記録されます。

関連項目