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.www58058.com/23256

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

相關推薦

  • 設計模式 ( 十八 ) 策略模式Strategy(對象行為型)

    設計模式 ( 十八 ) 策略模式Strategy(對象行為型) 1.概述         在軟件開發中也常常遇到類似的情況,實現某一個功能有多種算法或者策略,我們可以根據環境或者條件的不同選擇不同的算法或者策略來完成該功能。如查找、排序等,一種常用的方法是硬編碼(Hard Coding)在一個類中,如需要提供多種查找算…

    Linux干貨 2015-07-28
  • 一張圖認識開源世界

    開源精神:自由,創新,團結,互助,友愛,積極,進取。在開源環境下也產生了很多優秀的軟件,讓我們通過一幅圖認識一下開源世界里的大咖們! 看圖識物     墻上掛的牛頭:偉大的開源計劃GNU Wiki:http://zh.wikipedia.org/zh-cn/GNU     墻上日歷上的信封標志:經典的linux下的郵件…

    Linux干貨 2015-03-20
  • puppet學習筆記

      一、Puppet基礎原理: Puppet是一款使用GPLV2X協議授權的開源管理配置工具,用ruby語言開發,既可以通過客戶端—服務器的方式運行,也可以獨立運行。puppet可以為系統管理員提供方便,快捷的系統自動化管理。   二、puppet工作流程 1. 客戶端 puppet-client 向 puppet-maste…

    Linux干貨 2015-11-04
  • 淺談用戶名和權限

        小編已經寫了兩篇博客了,卻忘了自我介紹,咳咳咳(隆zhuang重qiang介zuo紹shi)一下:翠衣薄紗如花艷,柳眉鳳眼俏佳人說的就是我!不扯了其實,小編擁有一個四口之家,那么小編今天就借家獻佛給你們講講用戶組和權限。     所屬主(me):一般為文件的創建者,誰創建了該文件,就天然的成…

    Linux干貨 2017-07-30
  • HTTP協議

    HTTP協議   HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用于從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。HTTP是一個基于TCP/IP通信協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。HTTP協議工作于客戶端-服務端架構之上。瀏覽器作為HT…

    Linux干貨 2017-02-15
  • 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次既可。 [root@director ~]# who | cut -d' ' -f 1 | sort | uniq &nbsp…

    Linux干貨 2016-12-13
欧美性久久久久