crond实现邮件告警

实验环境:centos 6.8

所需软件:mailx或msmtp或smtpEmail等 smtp客户端程序

所需帐号:我这使用的是163邮箱。

本方案优点:安装软件少,无须启动postfix等邮件服务。无须配置postfix邮件服务。由于调用的是注册邮箱,所以也不会给移入到垃圾邮件中。 

建议:生产中,不管是什么服务发送邮件的建议使用外部smtp帐号,不会导致移入到垃圾邮件列表中。

需求环境:由于我们线上脚本过多,而且也没有报警警告,所以无法获取其执行情况。导致最后老板发现,结果懂的。

然后与开发沟通,运维这边无法保证脚本的逻辑性错误,只能保证代码是否执行。代码逻辑性错误需要在脚本中判断并STDERR输出。

我是安装的mailx来实现的,过程简单。

安装mailx:yum -y install mailx

安装完成后会生成mail命令。

执行一次mail命令会生成 /etc/mail.rc 文件。

编辑/etc/mail.rc    在最后一行添加

set from=FromUser@163.com

set smtp=smtp.ym.163.com

set smtp-auth-user=AuthUser@163.com

set smtp-auth-password=PASSWORD

set smtp-auth=login

测试是否正常收发邮件

echo "123456" | mail -s "报警" AuthUser@163.com

如果正常,那么就会收到一份邮件

配置脚本:

mv /usr/sbin/sendmail{,.bak}vim /usr/sbin/sendmail    #!/bin/bash    #    MAIL=`cat -`    echo $MAIL | mail -s "警告" AuthUser@163.com

配置完成。

测试:

crontab -e*/1 * * * * echo "1"

添加一行输出,那么1分钟后就可以收到报警邮件了。

原理:

crond计划任务执行任务后,标准输出,错误输出都会输入到屏幕。

如果定义了MAILTO变量(在/etc/crontab已经定义),就会调用/usr/sbin/sendmail发送邮件。

crond传递格式如下:

From: root (Cron Daemon) To: root Subject: Cron <root@opsnote> echo "1" Content-Type: text/plain; charset=UTF-8 Auto-Submitted: auto-generatedX-Cron-Env: <LANG=en_US.UTF-8> X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/root> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=root> X-Cron-Env: <USER=root> 1

那个脚本的的作用就是截取这些内容,然后调用mail命令将这些内容发送出去。

思路提供完毕。希望能举一反三。

如有疑问可以联系:root@opsnote.com

原创文章,作者:SSA,如若转载,请注明出处:http://www.178linux.com/23256

(0)
SSASSA
上一篇 2016-07-10 12:15
下一篇 2016-07-10 12:15

相关推荐

  • N–25期 第九周作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash declare -i sumlogin=0 declare -i sumnologin=0 for i …

    Linux干货 2017-03-07
  • 18文本处理工具sed

    18文本处理工具sed     sed,全称Stream EDitor,是一种流编辑器,它一次处理一行内容,但是它构思巧妙,功能强大,是运维工作中必不可少的文本处理工具,也是因为这样,被称作文本处理三剑客之一。     sed在处理时,把当前处理的行李存储在临时缓冲区中,这个区域被称作“模式空间pa…

    Linux干货 2016-08-12
  • 基于lvs调度的web应用——Discuz程序

    实验环境: 前端主机:10.1.43.101 后端主机1:172.16.0.9   作为lvs-dr的调度器,并且提供mysql和nfs文件共享 后端主机2:172.16.0.2   作为ap服务器之一 后端主机3:172.16.0.3   作为ap服务器之一 实验拓扑: 后端主机1: [root@node3…

    Linux干货 2016-10-26
  • 谁写了Linux

    2009年8月,Linux软件基金会发布了一份叫《Who Writes Linux and Who Supports It》(PDF)的报告。这份报告主要对Linux 2.6.x的开发进行了全方位的统计。看了以后才知道,原来Linux的开发的生产率竟是这样的惊人,而且相当的的令人振奋,所以,在第一时间转过来给大家看看。让人不得不惊叹,这不可思议的具有非凡活力…

    Linux干货 2015-04-03
  • 马哥教育网络班21期-第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;     #fdisk /dev/sdb (n;p;1;+10G;w)     #partx -a -n 1 /dev/sdb     (1…

    Linux干货 2016-08-22
  • Hadoop Hive与Hbase整合+thrift

    1.  简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 Hive与HBas…

    Linux干货 2015-04-13