定时任务+邮件发送 小记
*定时任务就像每天喊你起床的闹钟,严格设定指定的时间周期性执行你的计划或者任务。
话不多说,上图~~
*定时任务的相关配置文件
[root@web01 ~]# ll /var/spool/cron/root #存放定时任务的配置文件
[root@web01 ~]# ll /var/log/cron #定时任务执行的过程日志
[root@web01 ~]# ll /var/spool/mail/ #用户的邮件
*crontab #书写定时任务的命令
-e #编辑定时任务 == vim /var/spool/cron/root
-l #查看定时任务 == cat /var/spool/cron/root
*示例*
00 02 * * * #每天凌晨2点整
00 02 1 * * #每个月的1号凌晨2点整
00 02 1 2 * #每年的2月1日凌晨2点整
00 02 1 2 7 #每年的【2月1号或者周日】凌晨2点整
[root@web01 ~]# crontab -l
#同步系统时间
* * * * * /usr/sbin/ntpdate ntp.aliyun.com &>/dev/null #每一时刻都像阿里云同步时间
*定时任务+发送邮件=定时定点发送邮件*
1.安装邮件命令
[root@web01 ~]# yum install -y mailx
2.编辑配置文件
[root@web01 ~]# vim /etc/mail.rc
set from=xxxx@qq.com #接收方看到的发件人信息
set smtp=smtp.qq.com #邮件服务器
set smtp=smtps://smtp.qq.com:465 #邮件服务器协议及端口
set smtp-auth-user=xxxx@qq.com #发件人用户名
set smtp-auth-password=XXXXXXXXX ##发件人密码(不是QQ邮箱的密码,输入的是邮箱授权码)
set smtp-auth=login #登录方式
set ssl-verify=ignore #忽略证书
set nss-config-dir=/etc/pki/nssdb/ #指定证书位置
注:邮箱授权码获取路径:QQ邮箱 > 设置 > POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务开启 >按照提示信息发送短信
[root@web01 ~]# echo "发送的内容" | mail -s "邮箱主题" xxxx@qq.com
[root@web01 ~]# Error in certificate: Peer's certificate issuer has been marked as not trusted by the. #错误提示不影响发送邮件,忽略即可
*常见报错:
535 Error: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
smtp-server: 535 Error:
http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
"/root/dead.letter" 11/307
. . . message not sent.
原因:邮箱授权码问题,按照上述提示重新操作,POP3/SMTP服务需要开启,配置文件中auth-password一定时授权码并非邮箱密码。
*结合定时任务与发送邮件*
1.将发送邮件写入脚本
2.定时任务执行脚本
彩蛋袭来~~附带情书小脚本,快去向暗恋的小哥哥|小姐姐写情书吧~~~~
1.百度好情书内容,准备多封保证每天不重样~~
2.将准备好的情书内容写入指定文件夹,1.txt 2.txt依次排~~
3.写脚本啦~~
[root@web01 ~]# cat qingshu.sh
#! /bin/bash
qingshu=$(ls -1 /qingshu |head -1)
mail -s "至亲爱的xxx" XXXXXXXX@qq.com < /qingshu/$qingshu
if [ $? -eq 0 ];then
rm -rf /qingshu/$qingshu
fi
4.加入定时任务
[root@web01 ~] crontab -e
#时间同步
* * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
#定时发送小情书
14 13 * * * /bin/bash /root/qingshu.sh &>/dev/null
~~~只能帮你到这里啦~~~