68user's page 掲示板

Prev< No. 2625〜2630> Next  [最新発言に戻る] [過去ログ一覧]
No. 2625 # 名無しさん 2002/04/11 (木) 20:11:06
マルチポストですか・・・>あやの

No. 2626 # kouhei 2002/04/12 (金) 10:49:47
お世話になってます。すみませんがもう一つ質問させてください。
CVSでコミットと同時にメールで複数人に通知したいのですが、設定がよくわかりません。
一応、以下の内容をloginfoに加えればメールは送られるのですが
コミットに1分以上、時間がかかってしまい使えません。
ALL (echo ""; id; echo %{sVv}; date; cat) | mail メールアドレス

パールを使う以下の方法も試したのですがパールの中でエラーが出てしまいます。
DEFAULT /usr/local/lib/cvs/contrib/log %s -m メールアドレス -f $CVSROOT/CVSROOT/commitlog

エラー内容は 〜/user/local/lib/cvs/contrib/log line 172. です。
-----------------------------------------------------------
/user/local/lib/cvs/contrib/log
-----------------------------------------------------------
close(OUT);
die "Write to $logfile failed" if $?;

close(MAIL);
die "Pipe to $mailcmd failed" if $?; ← 172行目
-----------------------------------------------------------

環境はLINUXです。
メール自動送信の方法をご伝授して頂けないでしょうか。
宜しくお願いします。

No. 2627 # 68user 2002/04/12 (金) 11:15:54
>>2626 kouhei
> コミットに1分以上、時間がかかってしまい使えません。
> ALL (echo ""; id; echo %{sVv}; date; cat) | mail メールアドレス
普通に考えると、commit に時間がかかる場所は mail コマンド以外には
考えられないので、まずはコマンドラインから
    % mail メールアドレス
で試してみるべきでしょう。

> パールを使う以下の方法も試したのですがパールの中でエラーが出てしまいます。
こちらも
    % Mail -s 'CVS update: $modulepath メールアドレス

    % /usr/local/lib/cvs/contrib/log %s -m メールアドレス -f $CVSROOT/CVSROOT/commitlog
などをコマンドラインから実行して、再現するかどうか試しましょう。

うちでは
    http://www-vox.dj.kit.ac.jp/nishi/cvsbook/ の mailto-committers.pl.txt を
使っています。
    - CVSROOT に jcode.pl を cvs add。
    - CVSROOT に mailto-committers.pl を cvs add。
    - CVSROOT/checkoutlist に
            mailto-committers.pl
            jcode.pl
        を追加し、commit。
    - CVSROOT/mailto-committers.pl を以下のように変更
                --- CVSROOT/mailto-committers.pl 2001/04/05 07:05:28 1.1
                +++ CVSROOT/mailto-committers.pl 2001/04/17 04:12:00 1.8
                @@ -1,23 +1,24 @@
                  #!/usr/bin/perl
                  #
                -# $Id: mailto-committers.pl,v 1.1 2001/04/05 07:05:28 mat Exp $
                +# $Id: mailto-committers.pl,v 1.8 2001/04/17 04:12:00 mat Exp $
                  # Copyright (C) 1998 Hajime BABA. All rights reserved.
                  #
  
                -require 'jcode.pl';
                +require '/MASTER/cvs/CVSROOT/jcode.pl';
  
                -$cvs = "/usr/bin/cvs";
                -$rcsdiff = "/usr/bin/rcsdiff";
                -$sendmail = "/usr/sbin/sendmail";
                +$cvs = "/usr/local/bin/cvs";
                +$rcsdiff = "/usr/local/bin/rcsdiff";
                +$sendmail = "/usr/lib/sendmail";
  
                  sub parse_args {
                          my(@tmp, $tmp);
  
                - $CVSROOT = ENV{'CVSROOT'};
                + $CVSROOT = $ENV{'CVSROOT'};
                + $CVSROOT =~ s/.*://;

                          print $ARGV[0], "\n" if $debug;
                          $ARGV[0] =~ s/ - New directory//go;
                @@ -49,6 +50,7 @@
                  sub set_header {
                          my(@h, $file, @tmp, $date);
  
                          open(HISTORY, "$tail -$files $CVSROOT/CVSROOT/history |") || die;
                          @h = <HISTORY>;
                          close(HISTORY);
                @@ -84,8 +86,8 @@ sub todate {
                  sub mail_notification {
                          my($file, $fullname, $old, $new, $tmp);
  
                - open(MAIL, ">> /tmp/commitlog");
                + open(MAIL, "| $sendmail -odb -oem -t");
                          print(MAIL "$subject");
                          print(MAIL "$header");

    - loginfo に
            DEFAULT $CVSROOT/CVSROOT/mailto-committers.pl %{sVv} $USER メールアドレス
        を追加し、commit。

No. 2628 # kouhei 2002/04/12 (金) 14:06:41
mailto-committers.plの方法を試しましたが結果は同じで1分以上待ってから送信されます。
%mail メールアドレスは普通に送信されました。
もう少し調べてみます。

No. 2629 # john 2002/04/13 (土) 23:20:13
はじめまして、メールサーバの管理をしているのですが、
最近サーバがpopユーザ数に対応しきれず、
pop.lockがかかってメールが取れない事が頻繁に発生しています。
popデーモンはqpopperをつかっています。

そこで、このロックの解除方法で疑問があります。

qpopperが起動すると、まず、/var/mai/.user-id.popファイルにコピーを作成。
無事にコピーが終わると、/var/mai/user-idはサイズ0に切り詰められる。
POPサーバーは、このコピーと、解析した結果を元にクライアントとやりとりします。
  
ネットで調べると、.user-id.popファイルを削除する方法をよく見かけますが、
途中でセッションが切れてロックファイルが残ってしまったような場合、
この方法では受信し切れなかった分のメールはなくなってしまうのでしょうか?
ほっとけば30分でロックファイルはなくりますが、
これもただ強制的にロックファイルを削除しているだけなのでしょうか?

また、popのプロセスをkillする方法もありますが、この場合のロックファイルは
どう処理されるのでしょうか?

ご指導、宜しくお願いします。

No. 2630 # 68user 2002/04/15 (月) 07:54:54
>>2629 john
一口に qpopper と言っても、2.5x 系、3.x 系、4.0.x 系 などがあります。
ちゃんとバージョンを書きましょう。

> qpopperが起動すると、まず、/var/mai/.user-id.popファイルにコピーを作成。
> 無事にコピーが終わると、/var/mai/user-idはサイズ0に切り詰められる。
> POPサーバーは、このコピーと、解析した結果を元にクライアントとやりとりします。

4.0.3 では、
    認証完了
    → user-id.lock 作成
    → user-id を .user-id.pop にコピー
    → user-id を 0 バイトに
    → user-id.lock 削除

でした。「pop.lock」ってどのことを指してますか? あるいは本当に
「pop.lock」というファイルがあるのでしょうか?

Prev< No. 2625〜2630> Next  [最新発言に戻る] [過去ログ一覧]