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