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
下一篇 2016-07-10

相关推荐

  • DNS服务器搭建从协议到实现详解

    一、域名和服务概述    1.FQDN:Fully Qualified Domain Name,完全限定域名,全局唯一           FQDN是指主机名加上全路径,全路径中列出了序列中所有域成员。全域名可以从逻辑上准确地表示…

    Linux干货 2016-04-30
  • Linux基础

    计算机组成和功能 按照Von Neumann的理解 [1],计算机分为以下几部分:     输入 (Input Device, 用于提供给计算机待处理的数据)         e.g. 键盘,…    &nbs…

    Linux干货 2016-09-27
  • Net25-第13周作业

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu; 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; 3)添加samba用户gentoo,centos和u…

    Linux干货 2017-05-15
  • OpenSSL用法详解

    OpenSSL用法详解 OpenSSL:        组件:libcrypto,libssl                 openssl &nb…

    Linux干货 2016-09-23
  • shell变量的浅谈

    变量本质上是存储数据的一个或多个计算机内存地址,变量的命令规则包括: 1) 不能使用程序中的保留字,如if, for 2) 变量由字母、下划线和数字组成,且不能以数字开头 3) 要求风名知义 4) 统一命名规则:驼峰命名法 变量主要分为本地变量、环境变量、局部变量、位置变量和特殊变量 (1)本地变量:只对当前shell…

    2017-08-05