[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:16204] Re: popularity-contest
佐野@浜松です。こんばんは。
Keita Maehara <maehara@debian.or.jp> writes:
> その際に official maintainer がどの JP Package を優先的に upload して
> いくかという参考にするため、popularity-contest というパッケージを利用
> して、パッケージの人気調査を行ないたいと思います。
>
> 参加方法は、
>
> 1. popularity-contest パッケージをインストールする。
> 2. /etc/popularity-contest.conf に MAILTO=popcon@debian.or.jp と記述。
>
> と非常に簡単ですので、ぜひ参加してみてください。
自分は slink への移行に合わせて MTA を exim にして、ついでに
デフォルトのローカルオンリーな設定にしているので、上記の方法の
ままでは外へ送られません。
# この設定だと、ローカルでメールの設定をミスしても外部にエラー報告が
# まったく飛ばないので、一種の保険を効かせているようなものです。
# 先日は柳原さんからエラーメールが届きましたが、それ以外にも今まで
# ちょくちょく (中には数ヶ月〜半年以上前のメールに対して) エラーが
# 返ってくることがありました。どうしても直接外とやり取りする必要の
# あるシステム (メールサーバーとか) 以外は、MTA の設定をローカルオンリーに
# しておいたほうが安心です。(実は設定ミスって大量のエラーメールを
# ローカルに溜め込んだことのある奴 > ^^;;)
そこで、とりあえず自分宛てに送って、それを今まで数回手で転送して
いたのですが、いかにも面倒です。
自分が外へメールを出す時は、im の imput を使っているので、
なんとかそれを使う方法が無いか、考えてみました。
im の設定は個人毎なので、root で /etc/cron.daily を実行して
一般ユーザである個人の imput を使うのはちょっと手順が複雑に
なります。そこで、どうしようかな、と思っていたのですが、
/usr/sbin/popularity-contest は一般ユーザでも実行できることに
気がついて、最初から一般ユーザの crontab に入れておけば済むと
思いつきました。
具体的には、以下の手順です。
1) まず /etc/popularity-contest.conf の MAILTO= の設定は
コメントアウトして、/etc/cron.daily/popularity-contest が
動作しないようにします。
2) 次に、一般ユーザで個人のツールを入れておく場所 ($HOME/bin) に
/etc/cron.daily/popularity-contest の内容を編集した、以下の
スクリプト (popcon-cron) を置いておきます。
--- $HOME/bin/popcon-cron ---
#!/bin/sh
POPCON=/usr/sbin/popularity-contest
MAILTO="popcon@debian.or.jp"
SENDMAIL="$HOME/bin/imput.popcon"
# Config file for Debian's popularity-contest package.
#
# MAILTO specifies the address to e-mail statistics to each
# night. If you comment it out, the cron job will be disabled.
#
# MAILTO="apenwarr-survey@debian.org"
# MAILTO="popcon@debian.or.jp"
# don't run if this package is removed but not purged
if [ ! -f "$POPCON" ]; then
exit 0
fi
# get configuration information
# . /etc/popularity-contest.conf
# don't run if MAILTO address is blank!
# if [ -z "$MAILTO" ]; then
# exit 0
# fi
# generate and transmit the popularity contest data
( echo 'From: <nobody@debian.org>';
echo 'Subject: popularity-contest submission';
echo;
"$POPCON" ) | "$SENDMAIL" -oi -f nobody@debian.org "$MAILTO"
そして、メール送信用に、もうひとつ別のスクリプトを $HOME/bin に
用意しておきます。
--- $HOME/bin/imput.popcon ---
#! /usr/bin/perl
require 5.004;
use strict;
my $myarg = "--JustQueuing=on ";
if (defined $ARGV[0]) {
while (defined $ARGV[0]) {
if ($ARGV[0] eq "-f") {
shift @ARGV;
my $name = shift @ARGV;
$name =~ /^(.*)\\@(.*)$/;
my $acnt = $1;
my $dmin = $2;
$myarg = $myarg . " --User='$acnt' --FromDomain='$dmin'";
}
if ($ARGV[0] eq "-F") {
shift @ARGV;
my $name = shift @ARGV;
$name =~ /^\((.*)\)$/;
my $gcos = $1;
$myarg = $myarg . " --Name='$name'";
}
if ($ARGV[0] eq "-oi") {
shift @ARGV;
$myarg = $myarg . " --IgnoreDot=on ";
}
my $name = shift @ARGV;
$myarg = $myarg . " $name";
}
}
my $mailer = "/usr/bin/imput --Config=nifty " . $myarg;
exec $mailer;
このスクリプトの imput の --Config オプションは、お使いの環境に
合わせて適切に設定してください。
# どちらのスクリプトも、ユーザに実行許可が必要です。
# chmod 755 (or 744 or 700) しておいてください。
あとは crontab -e で $HOME/bin/popcon-cron が適当な時間に
実行されるように設定します。昼間しか活動しないマシンなら
お昼休みとか、夕方とか。
imput のオプションで --JustQueing=on としているので、imput の
送信キューに popcon メールが溜まるはずです。後はダイアルアップ
での接続時に送信するだけ。この部分はもともと /etc/ppp/ip-up.d
経由でキューに溜まったメールを自動で送信するように設定してあった
ので、そのまま使っています。
> これにより毎日パッケージの利用状況が popcon@debian.or.jp に送信される
> ようになりますが、送信者は匿名になり、また送信された情報を人気調査以外
> の目的で使用することはありませんので、安心して参加してください。
>
> 結果を公開できるようになったら、改めてこちらでアナウンスする予定です。
なるべくたくさんの方のデータが欲しいと思いますので、御協力を
お願いします。ダイアルアップ接続で exim をローカルオンリーの
設定にしてあっても、上記の方法で参加できます。
--
#わたしのおうちは浜松市、「夜のお菓子」で有名さ。
<xlj06203@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)