[Memo2009][ITPASS] tako 構築作業ログ(MAIL9)(清水, 黒田)

10/24 の作業ログ

サーバ交換作業後に, Cron Deamon からエラーメールが送られたので, そのエラーメールにしたがってそれぞれ /etc/cron.local/daily/401_status-quota と /usr/local/gate/bin/gate-db-to-ezmlm を修正し, mksigen をインストールする. また, 左側にある数字は行番号である.

/etc/cron.local/daily/401_status-quota の修正

ika と tako の /etc/cron.local/daily/401_status-quota を diff コマンドを使って比較しその上で, ika の /etc/cron.local/daily/401_status-quota を以下のように修正する.

[修正前]
   20 LINES"= `$EXPR $LINES - 5` # 5 means header length of repuota
   21 FMT="%12-s %8s %8s\n"

[修正後]
   20 LINES2=`$EXPR $LINES - 5` # 5 means header length of repuota
   21 FMT="%-12s %8s %8s %8s\n"

[修正前]
   25 $PRINTF "FMT" username usage slimit hlimit
   26 for uname in $USERS; do
   27   $PRINTF "FMT" `REPQUOTA -sv $QDIR | $GREP "^${uname} " | $AWK
     '{print $1,$3,$4,$5}'`

[修正後]
   25 $PRINTF "$FMT" username usage slimit hlimit
   26 for uname in $USERS; do
   27   $PRINTF "$FMT" `$REPQUOTA -sv $QDIR | $GREP "^${uname} " |
      $AWK '{print $1,$3,$4,$5}'`

修正後に,

# /etc/cron.local/daily/401_status-quota

と実行して, エラーが出ないことを確認した.

/usr/local/gate/bin/gate-db-to-ezmlm の修正

ika と tako の /usr/local/gate/bin/gate-db-to-ezmlm を diff コマンドを使って比較しその上で, ika の /usr/local/gate/bin/gate-db-to-ezmlm を以下 のように変更した. また, 左側にある数字はスクリプト内での行番号である.

[変更前]

49 die "Usage: gate-db-to-ezmlm [-t] [--unsub] ml-dir database-file1 
   database-file2 ...\n" if @ARGV == 0 ;

72 #@memberlist = qw( takepiro@geo.kyusyu-u.ac.jp
73 #                  odakker
74 #                  shosuke );

78 foreach ( @memberlist ){
79     chomp($_);
80     $checkmailaddress{$_}=-1;
81     }

101     # email: が空なら loginname から email address を作成
102     chomp($loginname);
103     $loginname =~ s/s\s+$//;
104     $email = $loginname.'@'.$domainname if !$email && $loginname;

107     $email =~ s/s\s+$//;
108     print STDERR "Warning: $email double-regisered.\n"
109         if exist $checkmailaddress{$email} && 
        $checkmailaddress{$email}>=0;
110     $checkmailaddress{$email}+1 if $email;
111 }

116 foreach ( keys(%checkmailaddress) ){

118         if ( ! $checkmode ) {
119            system( "$ezmlmsub $MLDIR $_" );
120         }
121         system( "echo $ezmlmsub $_" );
122         }
123     elsif ( $remove && $checkmailaddress{$_} == -1 ){

129 }

[変更後]

49 die "Usage: gate-db-to-ezmlm [-t] [--unsub] ml-dir database-file1 
   database-file2 ...\n" if @ARGV == 0 ;

72 #@memberslist = qw( takepiro@geo.kyusyu-u.ac.jp
73 #                  odakker
74 #                  shosuke );

78 foreach ( @memberslist ){
79     chomp($_);
80     $checkemailaddress{$_}=-1;
81     }

101     # email: が空なら loginname から email address を作成
102     chomp($loginname);
103     $loginname =~ s/\s+$//;
104     $email = $loginname.'@'.$domainname if !$email && $loginname;

107     $email =~ s/\s+$//;
108     print STDERR "Warning: $email double-regisered.\n"
109         if exists $checkemailaddress{$email} && 
       $checkemailaddress{$email}>=0;
110     $checkemailaddress{$email}+1 if $email;
111 }

116 foreach ( keys(%checkemailaddress) ){

118         if ( ! $checkmode ) {
119            system( "$ezmlmsub $MLDIR $_" );
120         }
121         system( "echo $ezmlmsub $_" );
122         }
123     elsif ( $remove && $checkemailaddress{$_} == -1 ){

129 }

mksigen のインストール

ソースを取得し展開する.

# cd /usr/local/src
# wget http://www.gfd-dennou.org/arch/cc-env/mksigen/mksigen_0.2-1.tar.gz
# tar xvfz mksigen_0.2-1.tar.gz

mksigen にある Makefile の文字を定義する部分を以下のように書き換える.

[変更前]

CONFDIR=(DESTDIR)/etc
BINDIR=(DESTDIR)/usr/bin
SBINDIR=(DESTDIR)/usr/sbin
MANDIR=(DESTDIR)/usr/man
HTMDIR=(DESTDIR)/usr/share/doc/mksigen

[変更後]

CONFDIR=/etc
BINDIR=/usr/bin
SBINDIR=/usr/sbin
MANDIR=/usr/man
HTMDIR=/usr/share/doc/mksigen

インストールを行なう. Makefile を見ると, /usr/share/doc 以下の mksigen に install するように書いてあるが, そのようなファイルがないので手動で作成する.

# make
# cd /usr/share/doc
# mkdir mksigen
# cd /usr/local/src/mksigen
# make install

参考資料

mksigen

10/26 の作業ログ

mksigen の再インストール

mksigen をパッケージで再インストールする. まず, 上でインストールしたファイル・ディレクトリを削除する.

  • /usr/man/man5 以下の mksigen-sigen.5
  • /usr/man/man8 以下の mksigen と名の付くファイル
  • /usr/man/ja/man5 以下の mksigen-sigen.5
  • /usr/man/ja/man8 以下の mksigen と名の付くファイル
  • /usr/sbin 以下の mksigenconfig
  • /usr/bin 以下の mksigen
  • /usr/local/src 以下の mksigen_0.2-1.tar.gz と mksigen 以下のすべてのファイルとディレクトリ

を rm コマンドで削除した.

ファイルをインストールする.

# wget \
  http://www.gfd-dennou.org/arch/cc-env/mksigen/mksigen_0.2-1_all.deb

/usr/local/src 以下に mksigen_0.2-1_all.deb がダウンロードされる. パッケージをインストールする.

# cd /usr/local/src
# dpkg -i mksigen_0.2-1_all.deb

この後の設定以下のようにした.

<--- configuration of mksigen --->
top directory: [/home]
top directory title: [/home]
background color (name or #aabbcc): [#CCFFCC]
ignored filename pattern: [\.bak$|~$|^lost\+found$]
hostname written in HTML: [ika-itpass.scitec.kobe-u.ac.jp]
make <DL> indentation?: (y/n) [N]
make summary?: (y/n) [N]
summary section title: [summary]
detail section title: [detail]
force mksigen to be in a group: []

mksigenconfig の中身を確認した.

<--- your configuration --->
detailtext: detail
indent:
heading: ika-itpass.scitec.kobe-u.ac.jp

bgcolor: #CCFFCC
ignorepat: \.bak$|~$|^lost\+found$
acklink: http://www.gfd-dennou.org/arch/cc-env/mksigen/desc.htm
acktext: this page is generated with ::mksigen::
summarytext: summary
topdir: /home
toptitle: /home
summarize:
forcegid:
is this okay?: (y/n) [N]y
configuration file: [/usr/sbin/../lib/mksigen.conf]
man-db のトリガを処理しています ...

/usr/sbin と /usr/bin 以下に mksigenconf ができた.

man ページについては,

/usr/share/man/ja/man5/ 以下に mksigen-sigen.5.gz
/usr/share/man/ja/man8/ 以下に mksigen-email.8.gz
/usr/share/man/ja/man8/ 以下に mksigen-intro.8.gz
/usr/share/man/ja/man8/ 以下に mksigen.8.gz
/usr/share/man/man5/ 以下に mksigen-sigen.5.gz
/usr/share/man/man8/ 以下に mksigen-email.8.gz
/usr/share/man/man8/ 以下に mksigen-intro.8.gz
/usr/share/man/man8/ 以下に mksigen.8.gz

がインストールされた.

[ITPASSサーバ構築ドキュメントへ戻る]

Last modified:2009/11/05 13:26:06
Keyword(s):
References:[[ITPASS2009]2009年度サーバ構築ログ]