LoginSignup
0
0

More than 1 year has passed since last update.

Linux cronについて(自分用メモ

Posted at

●cron
定期的に自動でジョブを実行。デーモン名は「crond」。
ユーザ用と管理者が設定するシステム用の2種類の設定ファイル(crontabファイル)がある。

●cronの設定ファイル

・ユーザ用のcrontabファイルは 「/var/spool/cron/ユーザ名」、「var/spool/cron/crontabs/ユーザ名」(ディストリビューションによる)、テキストエディタで直接編集はできない。ユーザ用のcronの設定を行うには「crontab」コマンドを使用。

・システム用のcrontabファイル(/etc/crontab)はviなどのテキストエディタで直接編集できる。ユーザ用のcrontabファイルの書式と異なり、各コマンドの実行ユーザも指定する必要がある。

●crontabファイルでは1行ごとに、自動的に実行するコマンドおよびその実行日時を指定。

crontabファイルの書式

[分] [時] [日] [月] [曜日] [実行ユーザ名(システム用設定ファイルでのみ指定)] [コマンド]

項目
・分 0~59で指定
・時 0~23で指定
・日 1~31で指定
・月 1~12で指定
・曜日 0~7で指定(0,7=日曜、1=月・・・)

表記
・* 全ての範囲に一致
・- 範囲の指定。時に1−5を指定すると1時から5時までを意味する
・, 複数の値を指定
・/ 間隔の指定。時に「1−9/2」と指定すると1時から9時の間で2時間おきを意味する

●ユーザ用の設定
ユーザ用のcrontabファイルは テキストエディタで直接編集はできないので「crontab」コマンドを使用する。

crontab [オプション]

オプション
・-e(edit) 設定ファイル(crontabファイル)を編集
・-r(remove) 設定ファイルを削除
・-l(list) 設定ファイルを表示

crontab -eコマンドを実行するとEDITOR環境変数で指定されたエディタ(未指定の場合はviエディタ)が開き、ユーザ用のcrontabファイル(/var/spool/cron/ユーザ名)が編集できるようになる。

●cronのアクセス制御
cronを利用するユーザを制限するには、「/etc/cron.allow」ファイルと「/etc/cron.deny」ファイルを使用。「/etc/cron.allow」には利用を許可するユーザを、「/etc/cron.deny」ファイルには利用を拒否するユーザを記述。

■cronおよびat、batchのアクセス制御に使用されるファイルをまとめたもの
・cronのアクセス制御
許可 /etc/cron.allow
拒否 /etc/cron.deny

・at,batchのアクセス制御
許可 /etc/at.allow
拒否 /etc/at.deny

各ファイルは以下の順序で評価される。

  1. 「/etc/cron.allow」ファイルがあれば、記述のあるユーザのみが利用可能
  2. 「/etc/cron.allow」ファイルがなければ、「/etc/cron.deny」を参照し、そこに記述のないユーザが利用可能
  3. 両方のファイルがなければ、rootユーザのみが利用可能

「/etc/cron.allow」ファイルが存在する場合、「/etc/cron.deny」ファイルの設定は無視され、「/etc/cron.allow」がなく「/etc/cron.deny」の中身に何も記述されていなければ、すべてのユーザが利用可能。

※UbuntuなどのDebian系ではどちらも存在しない場合は全てのユーザーが利用可能
※上記はat,batchの「/etc/at.allow」「/etc/at.deny」も同様
※rootユーザーの場合、両方のファイルが存在しない場合でも利用可能

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