ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用AnySQL在没有oracle客户端的服务器上发送邮件

用AnySQL在没有oracle客户端的服务器上发送邮件

原创 Linux操作系统 作者:space6212 时间:2019-06-06 16:18:09 0 删除 编辑


最近要监控一个没有安装oracle客户端的服务器,如果发现异常,将发送邮件通知。目前已经有现成的oracle发送邮件的存储过程,需要做的是从一个没有oracle客户端的服务器上调用该存储过程。在网上搜索一番后,发现AnySQL是一个不错的免客户端工具。


AnySQL是一个d.c.b.a(www.anysql.net)开发的、类似于SQL*PLUS的工具,它是基于java写的,所以运行这个工具必须要有JDK 1.4或者以上版本。
这个工具的好处是不用安装oracle客户端。

AnySQL只有Windows的版本直接下载, 要在Unix/Linux下使用,需要按照如下步骤做就可以了:

1、下载一个windows版本的AnySQL(http://www.anysql.net/software/anysql.zip)
2、 确定安装目录, 如/usr/AnySQL.
mkdir -p /usr/AnySQL/jlib
3、 将下载得到的文件解压,并将oasql.jar和oracle.jar拷到jlib目录
4、 编辑一个名称为asql的Shell文件, 以方便地运行AnySQL

文件名可随意取,路径也随意。这里就放在AnySQL目录下。
脚本内容如下:
[root@lb AnySQL]# more asql
#!/bin/sh

ASQL_CMD=`which $0`
ASQL_HOME=`dirname $ASQL_CMD`
$JAVA_HOME/bin/java -server -Xms8m -Xmx16m
-cp $ASQL_HOME/jlib/oasql.jar com.asql.tools.ASQL $*


注意:必须要安装了JDK,并设置了JAVA_HOME。

5、 将安装目录放到PATH路径中, 这样在任何目录运行asql就启动了AnySQL.
编辑.bash_profile文件,把asql的路径添加到PATH变量中。
vi ~/.bash_profile
export PATH=$PATH:/usr/AnySQL

保存后,执行source使环境变量生效。
source ~/.bash_profile

6、编写调用发送邮件存储过程脚本
文件名可随意取,路径也随意。这里就放在AnySQL目录下。

[root@lb AnySQL]# more Send_Mail
#set env
ORACLE_USER=system
ORACLE_PASSWORD=xxx
ORACLE_SID=xxx
ORACLE_IP=xxx.xxx.xxx.xxx
ORACLE_PORT=1521

# function
help_msg()
{
cat << help
+----------------------------------------------------+
+ you enter $# parameters
+ the total paramenter number must be $paranum
+ 1st : the email context
+ 2nd : the email title
+ 3nd : the Address the mail come from
+ 4th : the Address the mail sent to
+ 5th : 'the Email Server Address
+----------------------------------------------------+
help
}

# validate the parameters
paranum=5

if [ $# -lt $paranum ]
then
help_msg
exit
fi

#if no errors ,send email by oracle
asql <conn ${ORACLE_USER}/${ORACLE_PASSWORD}@${ORACLE_IP}:${ORACLE_PORT}:${ORACLE_SID}
set queryonly false
exec SendEmail($1,$2,$3,$4,$5);
exit
EOF

这里由于Send_Mail已经包含在$PATH中了,所以,可以像一般命令一样调用它了。

到这里,就差不多了。什么地方需要发送邮件的话,只需要写一个简单脚本调用Send_Mail就可以了。

参考文档:

http://www.anysql.net/anysql/anysql_in_unix.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/231499/viewspace-63779/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2005-01-25

  • 博文量
    245
  • 访问量
    168756