Linux系统定时发送邮件

目的:基于前面文章kettle执行情况发送邮件

环境:centos 环境

工具:mail、crontab

首先我们看下当前环境下有没有安装mail

which mail

可以看见有对应路径,说明环境已经安装了mail

如果没有安装就执行命令安装一下,这是linux环境自带的一般不会不存在

然后执行下面命令,在mail.rc文件最下面写上发送邮件的命令,注意一点smtp-auth-password=是授权码 ,不是邮箱密码   

vim /etc/mail.rc

#发送邮件命令
set bsdcompat

set from=xxxxxx@163.com               #发送邮件后显示的邮件发送方

set smtp=smtp.163.com                      #网易邮箱smtp邮件服务器地址

set smtp-auth-user=xxxxx@163.com       #发件人邮箱

set smtp-auth-password=fsdfsfsGZTUCHO      #发件人邮箱授权码

set smtp-auth=login                         #动作为登录
                                                         

进入邮箱,找到POP3/SMTP/IMAP设置,新增授权码。服务器地址也会有提示,找不到直接百度也能查到。

接下来就是编写发送邮件代码 vim 

#日志文件
log_file=log

#执行读取到的JOB,需配置连接kettle的用户名 密码,指定日志存储位置
/data/kettle/data-integration/./kitchen.sh -rep=SHINSUN_PRO -user=admin -pass=admin -level=Basic -dir=/SHINSUN_GQH/SHINSUN_JOB -job=shinsun_sd_plan_job >$log_file

#查找日志文件有没有错误
#错误个数
number=$(grep -rn "ERROR" "$log_file" | wc -l)
echo $number

#判断job执行情况ERROR个数 大于0说明执行报错
if [ $number -gt 0 ]
then
 echo -e 'Dear All:\n      见信好!今日job执行失败!附件是执行日志,请查收'  | mail -s '系统job执行情况' -a $log_file xxxx@163.com 

else

 echo -e 'Dear All:\n      见信好!今日job执行成功!又是愉快的一天'  | mail -s '系统job执行情况' xxxx@163.com 

fi

通过echo -e  '正文'  | mail -s '主题' -a 附件  xxxx@163.com 发送邮件并附带日志文件  (-e是让\n进行换行,不进行转义)

number=$(grep -rn "ERROR" "$log_file" | wc -l) 这段命令是读取日志文件中的ERROR个数,如果出现ERROE表示job在执行中出现了错误

最后通过crontab -e 设置脚本执行时间,这里简短一点,因为前面的文章已经写了如何使用crontab

续kettle项目传产后linux服务器调度问题

上面这段代码也是基于这篇文章的,放在job调度的sh脚本里

结果图:

如果出现smtp-server: 550 Invalid User错误

你可以看下set from=xxxxxx@163.com               #发送邮件后显示的邮件发送方  这个位置是不是你的邮箱号,

我尝试过修改from<>邮箱号,提示smtp-server: 550 Invalid User

把from修改回来就好了

 

参考文献:

linux系统定时发送邮件

linux shell 脚本判断某个文件是否有某个字符串

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值