Systemd 定时器教程:http://www.ruanyifeng.com/blog/2018/03/systemd-timer.html

一、定时任务

Systemd 定时任务:每小时发送一封电子邮件

二、邮件脚本

mail.sh 内容

#!/usr/bin/env bash

echo "This is the mail test" | /usr/bin/mail -s "Hi Tinywan" 756684177@qq.com

执行脚本

1、提示

 Please install an MTA on this system if you want to use sendmail!

2、安装SSMTP服务  

sudo apt-get install ssmtp

3、使用SSMTP替代sendmail/postfix 

一般情况下,很多 Linux 发行版都使用 Sendmail 或 Postfix 作为默认了电子邮件系统,我们之所以使用 SSMTP 就是为了使用外部 SMTP 中继,因此要将 SSMTP 配置为系统默认,首先就得停用 sendmail 或 postfix 服务。

systemctl stop sendmail
systemctl stop postfix

如果你使用较早版本 Linux,可以使用如下命令停用服务:

service sendmail stop
service postfix stop

注意:还需停止 sendmail 或 postfix 服务随系统启动哦,最好还是直接卸载掉吧。

4、配置SSMTP使用 QQ 邮件地址

使用 vim 或你喜欢的任意编辑器对 /etc/ssmtp/ssmtp.conf 文件进行编辑,我们以 QQ 的 SMTP 服务器为例,如果你使用其它 SMTP 请自行按服务商的官方文档进行修改: 

www=1722318623@qq.com
mailhub=smtp.qq.com:587
AuthUser=1722318623@qq.com
AuthPass=xxxxxxxxxxxxxxxxx

UseTLS=YES
UseSTARTTLS=YES
FromLineOverride=YES
RewriteDomain:qq.com

注意:以上红色为你使用QQ邮件服务器申请的邮件信息,请配置为你的邮件信息  

配置文件修改并保存好之后我们就可以用上 QQ 提供的可靠邮件服务了,现在先用如下命令先发个测试邮件来看看: 

 echo "This is a test e-mail" | mail -s "Test Email" overcome.wan@gmail.com

发送测试邮件时遇到类似如下提示:

sendmail: Cannot open mail:25

那是因为 ssmtp 默认会尝试使用标准的 SMTP 25 端口去连接邮件服务器,如果你所使用的 SMTP 中继像 Gmail 或 QQ 这样采用了 TLS 加密的非标准端口,还需要到 /etc/ssmtp/revaliases 配置文件中对发件人、服务器地址和端口进行指明:

www:1722318623@qq.com:smtp.qq.com:587
mainuser:1722318623@qq.com:smtp.qq.com:587

配置好后继续测试

echo "This is a test e-mail" | mail -s "Test Email" 756684177@qq.com

邮件提示信息

至此,邮件发送配置完成

三、Service 单元

新建 Service 非常简单,就是在/usr/lib/systemd/system目录里面新建一个文件,比如:tinywan-timer.service文件,你可以写入下面的内容。  

  

小知识:

Linux下使用vi新建文件保存文件时遇到错误:E212: Can't open file for writing

以上问题是由于权限问题导致的,解决方法有以下思路: 

  • 1、使用root进行登录,然后再操作。
  • 2、在使用命令时,前面加sudo。
  • 3、如果是多级文件夹的文件时,由于这个文件夹没有创建,所以要先创建这个文件夹,再来操作这个文件。

参考

1、SSMTP—让Linux系统从Office 365发送邮件

2、

最新文章

  1. php:PHPExcel导出excel表格
  2. Linux环境变量的修改(永久,暂时)以及修改ls显示的时间格式
  3. POJ C程序设计进阶 编程题#3:运算符判定
  4. [Cocos2d-JS] 安卓机器的几个按钮
  5. php.ini的配置
  6. eclipse中如何创建maven项目
  7. 使用jsonp实现ajax跨域请求
  8. Description:一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。Input:你的程序需要解决的问题是,输入连续对折的次数。NOutput输出中间切一刀,可以得到多少根面条。
  9. react-native 入门资源合集
  10. HDU 1787 GCD Again
  11. .NET中文乱码解决方案
  12. easelJS 初始入门
  13. vim + DoxygenToolkit.vim环境搭建
  14. Android中Handler使用浅析
  15. 极化码的matlab仿真(1)——参数设置
  16. OxyPlot Controller OxyPlot控制器
  17. 2018-10-08 Java源码英翻中进展-内测上线
  18. Linux常用的基础组件
  19. 网络之TCP握手总结
  20. 005.HAProxy+Keepalived高可用负载均衡

热门文章

  1. python学习日记(函数--装饰器)
  2. [loj6388] 「THUPC2018」赛艇 / Citing
  3. 【BZOJ1831】[AHOI2008]逆序对(动态规划)
  4. 【nginx】nginx配置文件结构,内置变量及参数调优
  5. poj2431(优先队列+贪心)
  6. 英语动画字母积木 Alphablocks 4季91集 自然拼读phonics 带字幕
  7. ONI无法启动: Uh oh! Unable to launch Neovim...
  8. 爬虫 写入文件时遇到gbk编码错误
  9. listview 样式 LVS_REPORT 与 LVS_EDITLABELS 编辑单元格时,当前行第一列内容不显示
  10. JAVA版本8u171与8u172的区别