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

更多文章
  • 通过阳台种菜实现蔬菜自由
  • 从GORM里学习到的panic处理方式
  • Go使用闭包简化数据库操作代码
  • TCMalloc设计文档学习
  • Flask和requests做一个简单的请求代理
  • Linux常用命令(四):xargs
  • Linux常用命令(二):htop
  • Linux常用命令(三):watch
  • Linux常用命令(一):netcat
  • 结合Flask 与 marshmallow快速进行参数校验
  • 规整数据的重要性
  • apt安装特定包以及忽略升级某个包
  • StackGuard的作用
  • Goroutine是如何处理栈的?
  • Go DiskQueue源码阅读