FreeBSD - newsyslog・crontab - cron・crontab


 クラウディア


1. 概要
2. 基本
3. 書式
4. 参考サイト

1. 概要

 「cron」について、基本的なことを記述します。  まず、概要で、「FreeBSD」のマニュアルをそのまま転記します。
cron ユーティリティは、通常は /etc/rc もしくは /etc/rc.local から起動されます。このコマンドは実行するとすぐに返ってくるので、起動時に '&' をつける
必要はありません。

cron ユーティリティは、 /var/cron/tabs ディレクトリの下から /etc/passwd 内のアカウント名と同じ名前の crontab ファイルを探し、見つかったファイルをメモリに読み込みます。 cron ユーティリティは、別のフォーマットの /etc/crontab (crontab(5) を参照してください) も調べます。このあと、 cron ユーティリティは 1 分おきに目覚めて読み込んでいるすべての crontab ファイルを調べ、各コマンドをその時刻に実行させるべきかどうかを調べます。コマンドを実行する場合には、出力がメールで crontab ファイルの所有者 (もしくはcrontab ファイル内の環境変数 MAILTO で指定されたユーザ) に送られます。

さらに、 cron は 1 分おきにスプールディレクトリの最終更新時刻(/etc/crontab の最終更新時刻も ) が変わっているかどうかを調べます。もし変化があれば、 cron は crontab ファイルすべての最終更新時刻を調べ、変更の
あったものを読み直します。このため、 crontab ファイルを変更したときにcron をリスタートさせる必要はありません。 crontab(1) コマンドが crontabファイルを変更したときにスプールディレクトリの最終更新時刻も更新されるこ
とに注意して下さい。

2. 基本

 「cron」は、基本的に。

/etc/crontab
/etc/cron.d/*
 に書いてある内容を実行します。  編集する際は、本来は。

crontab -e user_name
 で、デフォルトのエディタが開いて、「user_name」の権限で処理を実行します。  わたしは、面倒なので、「root」ユーザ権限で。

vi /etc/crontab
 で、直接編集しちゃってます。  ちなみに、「/etc/crontab」は、「Vixie Cron」系という書式はで記述されており、「FreeBSD」でも「Linux」でも同じ書式が使えます。

3. 書式

 「/etc/crontab」は、「FreeBSD 14.3 RELEASE」では、デフォルトでは下記のように記述されています。

# /etc/crontab - root's crontab for FreeBSD
#
#
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
#
#minute hour    mday    month   wday    who     command
#
# Save some entropy so that /dev/random can re-seed on boot.
*/11    *       *       *       *       operator /usr/libexec/save-entropy
#
# Rotate log files every hour, if necessary.
0       *       *       *       *       root    newsyslog
#
# Perform daily/weekly/monthly maintenance.
1       3       *       *       *       root    periodic daily
15      4       *       *       6       root    periodic weekly
30      5       1       *       *       root    periodic monthly
#
# Adjust the time zone if the CMOS clock keeps local time, as opposed to
# UTC time.  See adjkerntz(8) for details.
1,31    0-5     *       *       *       root    adjkerntz -a

#minute hour    mday    month   wday    who     command
 の行が、書式の説明になっていて。

分		時		日		月		曜日	実行者	実行コマンド
 と記述します。  実行コマンドまでは、空白もしくはタブで区切ります。  下記のように書けば、毎分起動することになります。

* * * * * who command
 下記のように書けば、毎正字「**:02」に起動することになります。  2 分周期なんぞは、どうするんじゃろうかと思ったら。

*/2 * * * * who command
 で、いいそうで、分単位の「*/x」の分母が周期になるようです。  これは、時・日・月にも応用できるんじゃろうと思います。

4. 参考サイト

 本ページは、「FreeBSD」のマニュアルおよび「ChatGPT」軍曹を参考にさせていただきました。

EaseUS
AbemaTV 無料体験