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、