[PREVIOUS CHAPTER]
[______TOC_______]
6 その他のTIPS
6.1 cronでnewsyslogをする (OBSOLETE shell version)
たとえば、
0 6 * * 0 (chdir dir-of-fml; sh bin/newsyslog.sh log var/log)
とか書くわけです。msend.pl 等では
6.4
$NOT_USE_NEWSYSLOG = 1; (default 0)
とすると newsyslog を実行しません(default は実行)。
6.2 actives/members ファイルのバックアップ: .bak => .0 =>.1
一般に配送リストやメンバーリストの更新が行なわれると .bak ファイルに通
常一週間分の更新がつけ足されていきます。メンバーが多いとこの .bak ファ
イルは大きくなってしまいます。現在ではファイルのサイズが
$AMLIST_NEWSYSLOG_LIMIT (default 50*3000 = 150K bytes)
を越えたら newsyslog (see 6.4) を使って file.bak ファイル
は var/log/file.0 に移動させるということをしています。
file.bak -> var/log/file.0
var/log/file.0 -> var/log/file.1
...
またこれとは独立にRCSによるバックアップも可能です。RCSでバックアップを
とる場合は
$AMLIST_BACKUP_TYPE = "rcs"; (default "")
を指定して下さい。この時の .bak ファイルは更新のかかる直前の内容の
file です。
6.3 ログファイル($DIR/log)の turn over
ログファイルがある大きさを越えたら log -> log.0 -> log.1 のようにずら
していきます。大きさの基準は次の変数にいれます。
$LOGFILE_NEWSYSLOG_LIMIT (default "")
10K や 1M のような入力もできます。
6.4 newsyslog/logファイルの整理と消去
newsyslog(8) はログファイルを整理するプログラムです。これを簡略化した
ものをFMLは提供しています。
Newsyslog is a program that should be scheduled to run
periodically by crontab. When it is executed it archives
log files if necessary. If a log file is determined to
require archiving, newsyslog rearranges the files so that
``logfile'' is empty, ``logfile.0'' has the last period's
logs in it, ``logfile.1'' has the next to last period's
logs in it, and so on, up to a user-specified number of
archived logs. Optionally the archived logs can be com-
pressed to save space.
例えば、まとめおくりの msend.pl は日曜朝6時に(default) newsyslog を実
行しています。これは @NEWSYSLOG_FILES で設定されているこの3つのファイ
ルに対し古いログを順番に残し、古くなり過ぎたら消すという動作をします。
@NEWSYSLOG_FILES =
("$MSEND_RC.bak", "$MEMBER_LIST.bak", "$ACTIVE_LIST.bak")
rm -f var/log/members.4
mv -f var/log/members.3 var/log/members.4
mv -f var/log/members.2 var/log/members.3
mv -f var/log/members.1 var/log/members.2
mv -f var/log/members.0 var/log/members.1
ln -s members.bak var/log/members.0
を実行します。必要なら この @NEWSYSLOG_FILES に これ↑をやってほしいファ
イル(log とか…)をつけくわえて、 config.ph などに書いて下さい。
@NEWSYSLOG_FILES =
("$MSEND_RC.bak", "$MEMBER_LIST.bak", "$ACTIVE_LIST.bak", "log")