[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[postfix-jp: 2545] Re: LDAP サーバ障害時の対策



松元です。

古いメールですが

[postfix-jp: 2457] Re: LDAP サーバ障害時の対策
>> 
>> 2. IDコマンドを使ったテストをcrontabに仕込む
>> - メールのロストを少なくするためには可能な限り短い間隔でテストする。
>> - しかしLDAPのタイムアウトに時間かかるので、二重起動しない対策。
>> - 本テストでpostfixが落ちた事を検出し通知する手を考える。

上記のスクリプトを作りましたので公開します。CentOS4.4で動作確認。

ただ、

>> - 本テストでpostfixが落ちた事を検出し通知する手を考える。

については実装していません。 外部から Nagiosで検知する方法で
考えていますが。。

------------------------------------
rootのcrontabあたりに仕込んでください。
3-59/5 * * * * /usr/local/sbin/check-ldap.sh

------------------------------------
#!/bin/sh

HOME=/
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
export HOME PATH

#
# getent passwd の返り値の閾値。ユーザ数が指定した数以下になる
# とエラーにする。数値は環境に合わせて適切に。
# 
GETENT_LIMIT=500

#DEBUG
#GETENT_LIMIT=600

#
#  Ref: http://www.postfix-jp.info/ML/arc-2.3/msg00456.html
#  * Subject: [postfix-jp: 2457] Re: LDAP サーバ障害時の対策
#
# 存在するか調査するID。
# 
CHECK_USERS="user1 user2 user3"

#DEBUG
#CHECK_USERS="hogehoge guestguest"

#############################
stop_postfix () {
    	/etc/rc.d/init.d/postfix stop
}

rm_lock ()
{
    if [ -f /var/lock/subsys/check-ldap ]; then
	rm -f /var/lock/subsys/check-ldap
    fi
}

check_id_postfix () {
    /usr/bin/id $1 > /dev/null 2>&1
    RETVAL=$?
    if [ ${RETVAL} -ne 0 ]; then
	stop_postfix
	echo "ERROR: May Be down LDAP. Dose not exist " $1
	rm_lock
	exit
    fi
}

#############################

#
# 二重起動のチェック
# 

if [ ! -f /var/lock/subsys/check-ldap ]; then
    touch /var/lock/subsys/check-ldap
    RETVAL=$?
    if [ ${RETVAL} -ne 0 ]; then
	echo "ERROR: Can not create lock file"
	exit
    fi

else
    echo "ERROR: exist lock file"
    exit
fi

#
# 指定したIDが存在をテストする。
#
# 

for N in ${CHECK_USERS} ; do
    check_id_postfix $N
done

#
#  getent passwd の返り値のテスト。行数が想定数より
#  少ないとエラー
#

PASSWD_C=`/usr/bin/getent passwd | wc -l `

if [ ${PASSWD_C} -lt ${GETENT_LIMIT} ]; then
	stop_postfix
	echo "ERROR: May Be down LDAP. Very few user :" ${PASSWD_C};
	rm_lock
	exit
fi

#
#
#
rm_lock

exit;

# EOF

--
松元隆二 
_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxxxxxxxxxxxxxxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list

Follow-Ups
[postfix-jp: 2546] Re: LDAP サーバ障害時の対策, YOSHIMURA Keitaro
References
[postfix-jp: 2457] Re: LDAP サーバ障害時の対策, Ryuji Matsumoto

[検索ページ] [Postfix-JP ML Home]