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

来源:互联网 发布:c语言中的eof 编辑:程序博客网 时间:2024/05/18 06:24

前期软件准备: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,应该能登陆成功。

下面是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命令,为修改文本的命令,可以自行搜索具体用法。

先到这里,以后有问题再具体补充

0 0
原创粉丝点击