前期软件准备: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命令,为修改文本的命令,可以自行搜索具体用法。
先到这里,以后有问题再具体补充