为AIX中配置sendmail relay到smtp server
来源:互联网 发布:经典翻拍知乎 编辑:程序博客网 时间:2024/06/05 10:49
今天写了一个数据库的监控脚本,在测试脚本能否正常告警时,发现邮件发不出去。
这个系统的环境是这样的,在整个系统中,大部分的机器放在192.168.1网段,为trust area,数据库主机也在此网段;另外有几台机器在192.168.3网段,为DMZ area。发送邮件不能直接在数据库主机上直接发送,需要通过192.168.3网段上的一台smtp server进行relay。我们假设这台smtp server的IP为192.168.3.99,下面我们来开始配置db主机,使得db主机上用mailx命令发送的邮件能中继到smtp server上进行发送。
在这里,db主机的os环境是aix 5.3,需要配置的文件为/etc/sendmail.cf。我们先备份一下这个文件,然后来进行修改:
在这个文件中,找到有如下相关的行(如果没有需要自行添加):
# for sendmail
DSsmtp:[192.168.3.99]
DwMYDAB02
Cwlocalhost
DSsmtp:[192.168.3.99]
DwMYDAB02
Cwlocalhost
其中DSsmtp:[192.168.3.99]表示smtp server的IP为192.168.3.99
Dw后面直接跟本机的主机名
Cw后面跟localhost
修改上面的参数后,重启sendmail服务:
refresh -s sendmail
此时即可在db主机上,通过mailx命令将监控的告警邮件,relay到smtp sever,然后通过smtp sever集中发送:
#!/usr/bin/sh
###################################################################
# This script is written by username@cn.ibm.com at 2010-08-12.
# Because HQ monitor can not cover all the db parameters,
# it need to by monitor by this script.
# main_normal.sh monitor the normal process and run every 2 hours
# main_crital.sh monitor the crital process and run every 2 mins
####################################################################
#### PARAMETER AND WORKING PATH SETTING
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=MDBPRD
WORKPATH=/u03/db_monitor
LOGPATH=${WORKPATH}/log
SRPTPATH=${WORKPATH}/bin
MAILPATH=${WORKPATH}/mailresult
CLOG=${LOGPATH}/db_monitor_${ORACLE_SID}_$(date +%Y%m%d).clog
NLOG=${LOGPATH}/db_monitor_${ORACLE_SID}_$(date +%Y%m%d).nlog
MRESULT=${MAILPATH}/mail_result_${ORACLE_SID}_$(date +%Y%m%d).mresult
MAIL_TOOL=/usr/bin/mailx
TO_MAIL=jianminh@cn.ibm.com
CC_MAIL=jianminh@cn.ibm.com
cd ${WORKPATH}
#### CHECKING CRITAL PROCESS
v_lsnr=`ps -ef |grep tns |grep -v grep |wc -l`
v_process1521=`netstat -an |grep 1521|grep -v grep |wc -l`
v_crit_process=`ps -ef |grep ora_ |grep ${ORACLE_SID} |grep -v grep|wc -l`
#### WRITE CHECKING RESULT TO LOG
echo "#################################################">>$CLOG
echo "============= CRITAL REPORT BEGIN =============">>$CLOG
date>>$CLOG
echo "====THE NUMBER OF LNSR====">>$CLOG
echo $v_lsnr>>$CLOG
echo " ">>$CLOG
echo "====THE NUMBER OF PROCESS USING PORT 1521====">>$CLOG
echo $v_process1521>>$CLOG
echo " ">>$CLOG
echo "====THE NUMBER OF ORACLE BGPROCESS====">>$CLOG
echo $v_crit_process>>$CLOG
echo " ">>$CLOG
echo "============== CRITAL REPORT END ==============">>$CLOG
if [ $v_lsnr -lt 1 ]
then
cat /dev/null > $MRESULT
tail -12 $CLOG>$MRESULT
$MAIL_TOOL -s "IMPORTANT! MYDAB02 LSNR DOWN!" -c $CC_MAIL $TO_MAIL < $MRESULT
else
echo "ok"
fi
if [ $v_process1521-lt 10 ]
then
cat /dev/null> $MRESULT
tail -12 $CLOG>$MRESULT
$MAIL_TOOL -s "IMPORTANT! MYDAB02 PORT 1521 DOWN!" -c $CC_MAIL $TO_MAIL < $MRESULT
else
echo "ok"
fi
if [ $v_crit_process-lt 5 ]
then
cat /dev/null> $MRESULT
tail -12 $CLOG>$MRESULT
$MAIL_TOOL -s "IMPORTANT! MYDAB02 ORACLE DOWN!" -c $CC_MAIL $TO_MAIL < $MRESULT
else
echo "OK"
fi
###################################################################
# This script is written by username@cn.ibm.com at 2010-08-12.
# Because HQ monitor can not cover all the db parameters,
# it need to by monitor by this script.
# main_normal.sh monitor the normal process and run every 2 hours
# main_crital.sh monitor the crital process and run every 2 mins
####################################################################
#### PARAMETER AND WORKING PATH SETTING
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=MDBPRD
WORKPATH=/u03/db_monitor
LOGPATH=${WORKPATH}/log
SRPTPATH=${WORKPATH}/bin
MAILPATH=${WORKPATH}/mailresult
CLOG=${LOGPATH}/db_monitor_${ORACLE_SID}_$(date +%Y%m%d).clog
NLOG=${LOGPATH}/db_monitor_${ORACLE_SID}_$(date +%Y%m%d).nlog
MRESULT=${MAILPATH}/mail_result_${ORACLE_SID}_$(date +%Y%m%d).mresult
MAIL_TOOL=/usr/bin/mailx
TO_MAIL=jianminh@cn.ibm.com
CC_MAIL=jianminh@cn.ibm.com
cd ${WORKPATH}
#### CHECKING CRITAL PROCESS
v_lsnr=`ps -ef |grep tns |grep -v grep |wc -l`
v_process1521=`netstat -an |grep 1521|grep -v grep |wc -l`
v_crit_process=`ps -ef |grep ora_ |grep ${ORACLE_SID} |grep -v grep|wc -l`
#### WRITE CHECKING RESULT TO LOG
echo "#################################################">>$CLOG
echo "============= CRITAL REPORT BEGIN =============">>$CLOG
date>>$CLOG
echo "====THE NUMBER OF LNSR====">>$CLOG
echo $v_lsnr>>$CLOG
echo " ">>$CLOG
echo "====THE NUMBER OF PROCESS USING PORT 1521====">>$CLOG
echo $v_process1521>>$CLOG
echo " ">>$CLOG
echo "====THE NUMBER OF ORACLE BGPROCESS====">>$CLOG
echo $v_crit_process>>$CLOG
echo " ">>$CLOG
echo "============== CRITAL REPORT END ==============">>$CLOG
if [ $v_lsnr -lt 1 ]
then
cat /dev/null > $MRESULT
tail -12 $CLOG>$MRESULT
$MAIL_TOOL -s "IMPORTANT! MYDAB02 LSNR DOWN!" -c $CC_MAIL $TO_MAIL < $MRESULT
else
echo "ok"
fi
if [ $v_process1521-lt 10 ]
then
cat /dev/null> $MRESULT
tail -12 $CLOG>$MRESULT
$MAIL_TOOL -s "IMPORTANT! MYDAB02 PORT 1521 DOWN!" -c $CC_MAIL $TO_MAIL < $MRESULT
else
echo "ok"
fi
if [ $v_crit_process-lt 5 ]
then
cat /dev/null> $MRESULT
tail -12 $CLOG>$MRESULT
$MAIL_TOOL -s "IMPORTANT! MYDAB02 ORACLE DOWN!" -c $CC_MAIL $TO_MAIL < $MRESULT
else
echo "OK"
fi
原文地址:http://www.oracleblog.org/working-case/config-relay-smtp-server/
- 为AIX中配置sendmail relay到smtp server
- eventlet SMTP Relay server
- aix sendmail 设置 (aix 只发送 到 linux sendmail server)
- sendmail 配置SMTP服务器
- Configure sendmail for SMTP relay with your ISP
- 为SharePoint Portal Server配置SMTP服务器
- ubuntu gutsy sendmail smtp验证配置
- Sendmail SMTP 认证配置 (FreeBSD 8.0)
- Sendmail Smtp
- How to use sendmail to configure SMTP server
- 为 AIX 配置 Infiniband
- 在Windows Server 2008R2中安装配置SMTP服务
- Windows Server 2008中安装配置SMTP服务
- 在Windows Server 2008R2中安装配置SMTP服务
- Win2003中为SMTP服务配置远程域
- 在Win2003中为Microsoft SMTP服务配置本地域
- Win 2003中为SMTP服务配置本地域
- Exchange 中配置 SMTP 连接器以链接到 Internet 域
- 如何运行PowerShell的脚本文件
- win8开发(10)——如何共享文本内容
- 【Struct(结构体)杂谈之八】小个头也有大智慧---C语言Struct中的函数和函数指针
- 开机grub的值
- EL表达式操作符详解.
- 为AIX中配置sendmail relay到smtp server
- windows系统启动项
- win8开发(11)——共享目标示例
- Struts2_ValueStack,OGNL详解
- PLSQL Developer 9.0注册码
- win8开发(12)——如何选择并打开文件
- 操作系统内存映射
- 通过内核对象在服务程序和桌面程序之间通信的小问题
- 维基百科 - 条件注释