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

相关推荐

  • Nginx 功能概述与基础应用!

           本篇博客主要有三个部分组成,目的在于让大家了解ningx的主要功用及作为web server的基础配置;通过本篇博客能够让您对nginx理解更加深入,以便于更好的使用它!                  …

    2017-05-14
  • 私人定制—linux系统

    自制Linux系统: 1、分区并创建文件系统 [root@localhost6 ~]# fdisk  /dev/sdb 分两个必要的分区 /dev/sdb1对应/boot /dev/sdb2对应根/ 创建文件系统: [root@localhost6 ~]# mkfs.ext4 /dev/s…

    Linux干货 2016-09-26
  • RAID详解

    测试机centos6.7 x86_64 一、RAID是什么     简单描述:RAID(Redundant Array of indenpensive Disk)独立磁盘冗余阵列:磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段或条带(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起…

    2016-02-14
  • linux中文本处理工具

      对于linux来讲,文本处理是非常重要的,因为linux系统就是由无数的文件组成的,linux中一切皆文件。文件的处理方式有很多种,所以就有众多的文本处理工具,各自作用于不同的文本处理方式。 一、查看文件命令:    cat命令:处理显示文件内容,不改变原文件    cat命令常用于查看文件内容,也可通过…

    Linux干货 2016-08-08
  • sed

    复制/etc/rc.d/rc.sysinit文件到/tmp目录中,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首家#; 2.复制/boot/grub/grub.conf至/tmp中,删除/tmp/grub.conf文件中的行首的空白字符 3.删除/tmp/rc.sysinit文件中的以#开头,且后面跟了一个至少一个空白字符的行行的#…

    Linux干货 2016-12-04
  • Linux基础知识之用户和组管理

    系统环境:    该博文以CentOS6.8_x86_64和CentOS7.2_x86_64系统为基础,Xshell5远程登录CentOS6.8和CentOS7.2系统,分别以root身份和sjsir用户身份登录系统。 学习的重要问题: 一、为什么要学习用户和组?    首先Linux区别于其他的系统的最重要的特性就是…

    Linux干货 2016-08-02