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

更多文章
  • 用selenium完成自动化任务
  • 用闲置的安卓手机做垃圾电话短信过滤
  • 推荐三个时间管理工具
  • 一次事故反思
  • 当JS遇到uint64:JS整数溢出问题
  • SQLite3 存储以及ACID原理
  • Redis源码阅读:pub/sub实现
  • Redis源码阅读:zset实现
  • Redis源码阅读:bitmap 位图的运算
  • Redis源码阅读:set是怎么做交并集运算的?
  • Redis源码阅读:list实现(ziplist, quicklist)
  • Redis源码阅读:RDB是怎么实现的
  • Redis源码阅读:AOF重写
  • Redis源码阅读:AOF持久化
  • Redis源码阅读:key是怎么过期的