linux任务计划、周期性任务执行
未来的某时间点执行一次某任务:at,batch
周期性运行某任务:crontab
执行结果会通过邮件发给用户
查看电子邮件服务是否开启
protocol
~]# ss -tnl
本地电子邮件服务
smtp:simple mail transmission protocol
protocol
lmap4:Internet mail access
mail命令
mail-send and receive intenet mail
MUA:mail user agent 用户收发邮件的工具程序
mailx username
邮件正文的生成:(1交互式输入:单独成行可以表示正文结束:Ctrl
+d提交亦可
(2)通过输入重定向;
(3)通过管道
at命令
at[option]...time
time:hh:mm
noon,midnight....
at的作业有队列,用单个字母表示,某人都用a队列
常用选项:
-l:表示查看作业队列,相当于atq
-f:/path/from/somefile/:从指定文件中读取作业任务,而不再交互式输入
-d:删除指定的作业,相当于atrm;
-c:查看指定作业的具体内容
-q:指明队列
注意:作业执行结果是以邮件发送给提交作业的用户;
batch命令:
batch会让系统自行选择在系统资源较空闲的时间去执行指定的任务
周期性任务计划:cron
服务程序:
cronle:主程序包,提供了crond守护进程及相关辅助工具;
确定crond守护进程(daemon)处于运行状态
centos7:
systemctil status crond.service
centos6:
service crond status
向crond提交作业的方式不同于at。他需要使用专用的配置文件,此文件有固定格式,不建议使用文本编辑器直接编辑此文件,要使用crontab命令
从容任务分为两类:
系统cron任务:主要用于实现系统自身维护;
手动编辑/etc/crontab文件
用户cron任务:
命令:crontab命令
系统cron的配置格式:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
注意:
(1)每一行定义一个周期性任务
* * * * *:定义周期性时间
user-name:运行任务的用户身份
command to be executed:任务
(2)此处的环境变量不同于用户登陆后获得的环境,因此命令建议使用绝对路径,或者自定义path环境变量;
(3)执行结果邮件发给mailto指定的用户
用户cron的配置格式:/var/spool/cron/username
注意:
(1)每一行定义一个cron任务,共6个字段;
(2)此处的环境变量不同于用户登陆后获得的环境,因此命令建议使用绝对路径,或者自定义path环境变量;
(3)执行结果邮件发给当前用户
时间表示法:
(1)特定值:
给定时间点有效取值范围内的指:
注意:day of week和day of month 一般不同时使用
(2)*
给定时间点上有效取值范围内的所有值:表“每..”
(3)离散取值
在时间点上使用逗号分割的多个值
(4)连续取值
在时间点上使用-连接开头和结束
(5)在指定时间点上,定义步长
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。