未来的某时间点执行一次某任务:at,batch
周期性运行某任务:crontab
执行结果:会通过邮件发送给用户
本地电子邮件服务:
smtp:simple mail transmisson protocol 应用层协议,简单邮件传输协议
pop3:Post Office Protocol 邮局协议
imap4: Internet Mail Access Protocol 互联网邮件访问协议
mail命令:
mailx -- send and receive mail
MUA: Mail User Agent 用户收发邮件的工具程序
mailx [-s 'SUBJECT'] username[@hostname]
邮件正文的生成:
(1)交互式输入:单独成行可以表示正文结束;Ctrl+d提交亦可
(2)通过输入重定向
(3)通过管道
![send_mail.png](https://upload-images.jianshu.io/upload_images/23960417-719b0042c81b6753.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
at命令:未来某时间执行一次任务
at [OPTION]... TIME
TIME:
HH:MM [YYYY-mm-dd]
noon(中午12点),midnight(晚上12点),teatime(下午4点)
tomorrow
now+#
UNIT: minutes,hours,days,weeks
at的作业有队列, 用单个字母表示,默认都使用队列
常用选项:
-l:查看作业队列,相当于atq
-f /path/from/somefile:从指定文件中读取作业任务,而不再用交互式输入;
-d #:删除指定的作业,相当于atrm;
-c #:显示指定作业详情;
-q:QUEUE 指明队列;
注意:作业执行结果是以邮件发送给提交作业的用户
batch命令:
batch会让系统自行选择在系统资源空闲的时间取执行指定任务
周期行任务计划:cron
服务程序:
cronie:主程序包,主要提供了crond守护进程及相关辅助工具;
确保crond守护进程(daemon)处于运行状态:
CentOS7:
systemctl status crond.service
Active:active (running)......
CentOS6:
service crond status
... is running
向crond提交作业需要使用专用的配置文件,有固格式,不见以使用文本编辑器直接编辑此文件;要使用crontab命令:
cron任务分为两类:
系统cron任务:主要用于实现系统自身的维护
手动编辑:/etc/crontab文件
用户cron任务:
命令:crontab命令
系统cron任务的配置格式: