文档库 最新最全的文档下载
当前位置:文档库 › 12 邮件告警

12 邮件告警

linux下利用mutt来发邮件

一、为什么使用mutt

为什么要用mutt发邮件呢?因为linux自带的mail命令不好使,尤其是中文很容易乱码,后来用了下mutt,果然好用。

mutt安装很简单:yum install mutt -y,安装后就可以使用了,mutt甚至可以在不启动sendmail 或postfix的情况下发邮件。(但是,在测试中发现,不开启sendmail,邮件发送不出去。)mutt跟linux的mail一样,其实都是个命令,如果用过mail,在用mutt会很顺手的,同时mutt在不同linux版本上的语法不一样,具体语法可以参考帮助mutt -h

在linux5下mutt的语法是:

echo "hello" | mutt -a test.txt -s "date" admin@https://www.wendangku.net/doc/3c5588159.html,

正文附件主题收件人

在linux6下mutt的语法是

echo "hello" | mutt -a test.txt -s "date" -- admin@https://www.wendangku.net/doc/3c5588159.html,

正文附件主题收件人

二、配置及发送示例

1. mutt简单配置

默认情况下mutt的发件人格式是用户名@主机名.主机域名,如root@https://www.wendangku.net/doc/3c5588159.html,,这种格式有可能被邮件服务器认为是垃圾邮件。

可以通过修改发件人信息,来避免被误认为是垃圾邮件。

在需要发邮件的用户下,建立以下文件

vi ~/.muttrc

setenvelope_from=yes

setuse_from=yes

set from=root@https://www.wendangku.net/doc/3c5588159.html,

setrealname="hope"

#如果收到的邮件乱码,设置以下信息

set charset="utf-8"

set rfc2047_parameters=yes

2. mutt发送示例

这里我用自己备份网站的一段代码举例加以说明

mutt 130********@https://www.wendangku.net/doc/3c5588159.html, -s "itdhz数据备份" -a /home/backup/itdhz.sql

或者echo "test" |130********@https://www.wendangku.net/doc/3c5588159.html, -s "itdhz数据备份" -a /home/backup/itdhz.sql

这段代码表示,发送邮件到130********@https://www.wendangku.net/doc/3c5588159.html,这个邮箱,邮件主题是“itdhz数据备份”,邮件内容在/root/readme.txt 中,邮件中包含附件/home/backup/itdhz.sql。如果要发送多

个附件,需要在每个附件前加-a 参数。

三、监控示例

如下是我写的一个用于检查硬盘空间和表空间,并把结果邮件发出的脚本:

[oracle@db1 ~]$ vi /home/oracle/shell/check_space.sh

#/bin/bash

source /home/oracle/.bash_profile

mail_list='user1@https://www.wendangku.net/doc/3c5588159.html,,user2@https://www.wendangku.net/doc/3c5588159.html,'

ip=`/sbin/ifconfig eth0 | grepBcast | cut -d : -f 2 | cut -d " " -f 1`

cd /home/oracle/shell/

echo -e "您好!

$ip统计信息如下:\n\n" >> $temp.txt

echo "硬盘空间统计:" >> $temp.txt

/bin/df -Th>> $temp.txt

echo -e "\n\n\n表空间统计:" >> $temp.txt

sqlplus -s system/orl708sys << EOF >> $temp.txt

set feed off

set lines 400

set pages 900

col 表空间名for a20

selectx.tablespace_name

表空间名,已用_G,已分配_G,已用占已分配的比例,空闲的已分配空间_G,最大可用空间_G,已分配占最大可用比例,>可自动扩展的空间_G

from (select TABLESPACE_NAME,round(sum(BYTES) / 1024 / 1024 / 1024, 2) 已分配_G,

round(sum(MAXBYTES - BYTES) / 1024 / 1024 / 1024,2) 可自动扩展的空间_G,

round(sum(MAXBYTES) / 1024 / 1024 / 1024) 最大可用空间_G,

to_char(round(sum(BYTES) / sum(MAXBYTES) * 100, 2), '990.99') || '%' 已分配占最大可用比例fromdba_data_files

group by TABLESPACE_NAME) x,

(selecta.tablespace_name,

round(a.bytes / 1024 / 1024 / 1024, 2) 已用_G,

round(b.bytes / 1024 / 1024 / 1024, 2) 空闲的已分配空间_G,

to_char(round(a.bytes / (a.bytes + b.bytes) * 100, 2),

'990.99') || '%' 已用占已分配的比例

from sys.sm\$ts_used a, sys.sm\$ts_free b

wherea.tablespace_name = b.tablespace_name) y

wherex.tablespace_name = y.tablespace_name

order by 1;

exit

EOF

mutt -s "$ip统计信息" -- $mail_list< $temp.txt

rm -rf $temp.txt

最后把脚本加入到定时任务中

[oracle@db1 ~]$ crontab -l

30 14 * * 5 /home/oracle/shell/check_space.sh

相关文档
相关文档 最新文档