[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")