您的位置:首页 > 运维架构 > Linux

linux下利用mutt+crontab进行邮件监控

2016-08-17 14:45 477 查看
前期软件准备:mutt(需下载,yum,mac可以用brew命令下载)

配置mutt:

打开终端,运行下面的几个命令

mkdir -p ~/.mutt/cache/headers

mkdir ~/.mutt/cache/bodies

touch ~/.mutt/certificates
找到配置文件Muttrc(不同的系统有所不同,mac下为/usr/local/etc/Muttrc)

加入配置信息:

set smtp_url = smtp://youname@163.com@smtp.163.com/

set smtp_pass = youpassword

set from = yourname@163.com

set realname = yourname #别人收到邮件,显示的名字

set folder = imaps://imap.163.com

set spoolfile = "+INBOX"

set postponed="+[Gmail]/Drafts"

set header_cache=~/.mutt/cache/headers

set message_cachedir=~/.mutt/cache/bodies

set certificate_file=~/.mutt/certificates

set move = no

set imap_user = yourname@163.com

set imap_pass = yourpassword

设置完成

终端运行mutt,应该能登陆成功。

msmtp配置

vim 

/etc/msmtprc

defaults
logfile -

account 163
host smtp.163.com
user xxx@163.com
from xxx@163.com
auth login
password xxx
tls on
tls_starttls off
tls_certcheck o
下面是crontab的配置:

终端运行 crontab -e

进入vim编辑模式   可以根据自己的喜好加入时间设定,我做了如下设置,每分钟运行一次

*/1 * * * * ~/monitorftp.sh
注:可以在后面加入>/dev/null 2>&1不记录输出信息(不会将输出信息发邮件给本地用户)
设置完,终端输入crontab -l 可以查看到你刚刚加入的定时器
最后是shell方面的写法monitorftp.sh:

#!/bin/bash

ftpUser=user
ftpPwd=password
ftpHost=ftp://url/
basedir=$(dirname $0)
email=yourname@163.com

ncftpls  -u ${ftpUser} -p ${ftpPwd} ${ftpHost}
if [ $? -ne 0 ]
    then
    ${basedir}/send-email.sh sync-monitorftp  \
    "$(sed -e "s/#content#/ftpLinkFail/" ${basedir}/email.tpl)" "${email}"
    exit1
fi

send-email.sh:

#!/bin/bash
## 此脚本发送邮件给管理员

if [ $# -lt 3 ];then
  echo -e "Usage:\n\t sh subject emailContent receiver-addresses[,address,address]"
  exit1
fi

echo "${2}" | mutt -s"[ERR]jdg ${1}" $3

email.tpl:

#content#

请勿回复这封邮件,这是xxx的系统监控邮件。

支持基本上就可以发送了

其实发送里用到了sed命令,为修改文本的命令,可以自行搜索具体用法。

先到这里,以后有问题再具体补充
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: