Crontab + Sendmail实现定时任务并且通知

systemd timers真是不好用。或者说,我还是更喜欢crontab,简单易懂。最近我有个需求是定时从云主机把数据 备份到笔记本上,一开始用的systemd timers,但是出错了也不通知我,于是用回crontab,而且还发先可以使用 Linux自带的本地邮件的功能来实现提醒的功能。

$ sudo pacman -S cronie opensmtp
$ sudo systemctl enable cronie
$ sudo systemctl enable smtp
$ sudo systemctl start cronie
$ sudo systemctl start smtp

然后就 crontab -e 编辑自己的定时任务,之后只要有邮件,你就会收到一个通知。例如编写下面这样一个crontab:

MAILTO=jiajun

* * * * * root

注意,MAILTO= 是必要的,否则不会发送邮件。

$ date
Thu 25 Apr 2019 09:01:32 PM CST
$ cd
You have new mail in /var/spool/mail/jiajun

切换目录的时候,就会提醒我有邮件。当然,这还有一个重要原因是设置了 MAIL 这个环境变量。如果没有,需要检查一下:

$ echo $MAIL
/var/spool/mail/jiajun

更多文章
  • 密码技术简明教程(三):证书和TLS
  • 密码技术简明教程(二):散列、消息认证码和数字签名
  • SEO学习笔记
  • 密码技术简明教程(一):对称加密和非对称加密
  • Kubernetes 笔记
  • go mod 和 logrus 路径大小写的问题
  • Flask自动加载Blueprint
  • 在KVM里安装Minikube
  • 搞定面试中的系统设计题
  • Crontab + Sendmail实现定时任务并且通知
  • Nginx设置Referer来防止盗图
  • Graphviz dot简明教程
  • jQuery简明教程
  • Python RQ(Redis Queue)添加gevent支持
  • 读《超级运营术》- 如何做社区?