[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 固める単位。デフォールトは記事100個ずつ
range これで最大どの記事までをアーカイブするか強制指定
デフォールトでは今の記事番号の直前の”100の倍数”
までをアーカイブの対象の記事としてアーカイブを作る。
注意:このプログラムは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の下に作ります。目的のMLの場所にまでいって
% 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 がその見本です。いくつかML
があるなら、シェルスクリプトにまとめて呼べば楽です。まとめ送りと同様に
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]