EN JA
PERIODIC(8)
PERIODIC(8) FreeBSD System Manager's Manual PERIODIC(8)

名称

periodic定期的なシステム機能を実行する

書式

periodic directory ...

解説

periodic ユーティリティは指定されたディレクトリにあるシェルスクリプトを実行するために、 cron(8) に呼び出されることを意図しています。

以下の引数から一つ以上を指定しなければいけません:

daily
標準的な 1 日周期の実行ファイルを実行します。これはよく (その地域の時刻で) 朝早くに行なわれます。
weekly
標準的な 1 週間周期の実行ファイルを実行します。通常、これは、土曜日の早朝に行なわれます。
monthly
標準的な 1 ヶ月周期の実行ファイルを実行します。これはよく月の 1 日目に行なわれます。
security
標準的な 1 日周期でのセキュリティチェックを実行します。通常、 daily の実行から起動されます。
path
実行すべき一連の実行ファイルがある任意のディレクトリを指定します。

引数が絶対パスのディレクトリ名の場合はそれがそのまま使われます。それ以外の場合は /etc/periodic の下と periodic.conf(5) (以下を参照) の中の local_periodic で指定されたディレクトリが検索されます。

periodic ユーティリティは指定されたディレクトリ (複数指定可) にある各実行可能ファイルを実行します。もし実行可能ビットがセットされていないファイルがあっても、無視するだけでそれに関するメッセージも表示しません。

各スクリプトは以下のいずれかの値とともに終了することが要求されます。

0
スクリプトの出力に注目すべき点はありません。変数< basedir> _show_success で出力のマスクを制御します。
1
スクリプトから注意すべき情報が出力されています。変数< basedir> _show_info でこの出力をマスクするかどうかを制御します。
2
スクリプトは無効な設定による警告を発しました。変数< basedir> _show_badconfig でこの出力をマスクするかどうかを制御します。
>2
スクリプトからマスクされない出力が出されています。

periodic.conf 中の関連のある変数 (< basedir>はスクリプトが置かれた基準となるディレクトリ) が“ NO”に設定されているなら、 periodic は、スクリプトの出力をマスクします。その変数が“ YES”か“ NO”のどちらにも設定されていなければ、 periodic.conf(5) に記述されたデフォルトの値が採用されます。

残った出力は< basedir> _output に設定された値に基づいて送られます。

もし、これにパス名 (‘ /’で始まります) が設定されているなら、出力は単純にそのファイルに記録されます。 newsyslog(8)/var/log/daily.log, /var/log/weekly.log, /var/log/monthly.log というファイルを知っており、これらのファイルが存在するなら、適当な回数でローテートされます。したがって、 periodic の出力を記録しようとするなら、これらを設定するのが適切です。

< basedir> _output の値が‘ /’で始まっておらず、空でもない場合には、メールのアドレスのリストが含まれているとみなされ、出力はメールで送られます。< basedir> _show_empty_output が“ NO”に設定されるなら、出力が空であった場合、メールを送りません。

< basedir> _output が設定されていないか、空である場合には出力は標準出力に送られます。

環境変数

periodic ユーティリティは環境変数 PATH をすべての標準的なシステムディレクトリを含むように設定します。ただし、 /usr/local/bin のような追加的なディレクトリは含めません。もし他のパスに依存するような実行ファイルを加えるなら、それぞれの実行ファイルが自己の環境変数を適切に設定する責任を負う必要があります。

関連ファイル

/etc/crontab
典型的な periodic ユーティリティの呼び出しはシステムのデフォルト cron(8) テーブル内のエントリから行なわれます。
/etc/periodic
サブディレクトリとして daily, weekly, monthly を含む上層のディレクトリです。これらのサブディレクトリにはシステムの標準的な定期的実行ファイルが置かれます。
/etc/defaults/periodic.conf
periodic.conf システムレジストリは periodic と標準の daily, weekly, monthly スクリプトの振舞を制御する変数を保持します。
/etc/periodic.conf
このファイルはデフォルトの periodic の設定の一部を置き換えるものです。

終了ステータス

終了状態は成功時には 0 です。もし以下のいずれかの理由でコマンドが失敗すれば、終了状態は 1 になります:

使用例

システム crontab には下の例のような periodic のエントリが記述されているはずです:

# do daily/weekly/monthly maintenance 
0      2       *       *       *       root    periodic daily 
0      3       *       *       6       root    periodic weekly 
0      5       1       *       *       root    periodic monthly

典型的なシステムレジストリ /etc/defaults/periodic.conf には変数 local_periodic について次のように記述してあるでしょう:

local_periodic="/usr/local/etc/periodic"

periodic の出力をメールで受け取る代わりにログにとるには以下のような行を /etc/periodic.conf に追加します:

daily_output=/var/log/daily.log 
weekly_output=/var/log/weekly.log 
monthly_output=/var/log/monthly.log

毎日実行される periodic のジョブから重要な情報のみを見るためには、以下の行を /etc/periodic.conf に追加します:

daily_show_success=NO 
daily_show_info=NO 
daily_show_badconfig=NO

診断

終了状態は成功時には 0 です。もし以下のいずれかの理由でコマンドが失敗すれば、終了状態は 1 になります:
usage: periodic <directory of files to execute>
スクリプトフラグメントがどこにあるかを指定するディレクトリパス引数が periodic に渡されませんでした。
<directory> not found
説明するまでもありません。 (訳注: 指定したディレクトリが見つかりません。)

歴史

periodic ユーティリティは、 FreeBSD 3.0 ではじめて登場しました。

作者

Paul Traina <pst@FreeBSD.org> Brian Somers <brian@Awfulhak.org>

バグ

ディレクトリの情報を、文字列を含むシェル変数< basedir>で指定するので、< basedir>は sh(1) において有効な名前である必要があります。すなわち、アルファベット、数値、アンダスコアであることが必要であり、最初の文字は数値であってはなりません。
August 30, 2007 FreeBSD