[PREVIOUS CHAPTER] [NEXT CHAPTER]

4 utility プログラム

    4.1	gzip file にする(アーカイブへの変換)
    ../digest 2.17

    $USE_ARCHIVE の自動操作にまかせずに時々手で もしくは cron 等でこのプロ
    グラムを動かしても良いです。
    ../digest 2.17

    	archive.pl [-dh] [-A ARCHIVE_DIR][-u unit] range

    	-d	debug mode
    	-h	help
    	-A	アーカイブを作る場所を指定
    		config.ph より強い
    	-u	固める単位。デフォールトは記事１００個ずつ

    	range	これで最大どの記事までをアーカイブするか強制指定
    		デフォールトでは今の記事番号の直前の”１００の倍数”
    		までをアーカイブの対象の記事としてアーカイブを作る。

    注意:このプログラムはMLのホームで実行されることを前提にしています。つ
    まり

    	% cd /var/spool/ml/Elena
    	% perl bin/archive.pl

    のように使うことを期待されています。

    これは archive.pl 2000 とかすると、2000 までのファイルを 100 個ずつの
    塊にして、archiveに作ります。変数は archive.pl の先頭でセットしてくだ
    さい。元のスプールは消さないので、注意を払って消して下さい
    (とりかえしがききませんから、それは)
    ＃自分じゃ、念のため ある程度まとまったところでこうやって手動でつくっ
    ＃てます。

    例えば、

    	spool/1-100	を tar+gzip して var/archive/100.tar.gz
    	spool/101-200	を tar+gzip して var/archive/200.tar.gz

    のようなファイルをarchiveの下に作ります。目的のＭＬの場所にまでいって

    % ls

    MSendrc		actives		config.ph	deny
    guide		help		list		log
    members		objective	seq		spool
    summary		welcome

    % test -d var || mkdir var
    % test -d var/archive || mkdir var/archive
    % perl archive.pl 3800

    	…たくさんメッセージが出るが省略…

    % ls archive

    100.tar.gz   200.tar.gz

    	…たくさんメッセージが出るが省略…

    spoolの 3800 までの 100 個ずつのパッケージを作りました。spoolの方の元
    メールを自動的に消しはしない(安全のため)ので、自分で消して下さい。

    4.2	アーカイブ作成を cron で自動処理

    cronで自動的(例えば週一日曜の朝とか)に次の形で

       (chdir /var/spool/ml/Elena; /usr/local/bin/perl bin/archive.pl)

    とでもすれば良いでしょう。bin/archive.sh がその見本です。いくつかＭＬ
    があるなら、シェルスクリプトにまとめて呼べば楽です。まとめ送りと同様に
    crontab に記述すればよいです。

    crontab の例：

    	0 * * * * /bin/sh /usr/libexec/fml/archive.sh

    [/usr/libexec/fml/archive.sh]

    	#!/bin/sh

    	(cd /var/spool/ml/Elena;    /usr/local/bin/perl bin/archive.pl)
    	(cd /var/spool/ml/Freekick; /usr/local/bin/perl bin/archive.pl)

[PREVIOUS CHAPTER] [NEXT CHAPTER]