Linux未来任务的调度——at,batch,crontab命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux未来任务的调度——at,batch,crontab命令相关的知识,希望对你有一定的参考价值。
### 在linux中,我们可以实现对于任务的未来调度,从而可以借助于linux实现半自动化运维操作方式,简而言之就是可以在未来的某个时间点,系统可以自动运行我们部署的任务
前提:
需要一个准确的时间
可以支持任务调度的应用程序
**注意**:
在计划任务中,所有执行的命令的输出结果,这类及结果均以邮件的方式发送至指定的用户邮箱中;
邮箱的发送:
mail命令
mail [-s SUBJECT] USERNAME[@DOMAINNAME]
(Ctrd + d发送)
系统用户的邮箱的目录/var/spool/mail/
at命令的常用用法:
at, batch, atq, atrm - queue, examine or delete jobs for later execution
at [option] timespec
timespec:
1.HH:MM [YYYY-mm-dd]
2.noon,midnight,teatime
3.tomorrow
4.now+#UNIT
UNIT:minutes,hours,days,or weeks
at定义的计划任务都在某个特定的任务队列中;默认at只启用了一个at队列,通常用a表示;
at命令的常用用法:
at [-q QUEUE_NAME] time
定义计划任务,输入任务之后,Ctrl+d提交
atq或at -l
查看所有任务队列中尚未执行计划任务列表;
atrm JOB_ID或at -d JOB_ID
撤销任务队列中尚未执行的指定任务标识符的计划任务
at -f /PATH/TO/SOMEFILE time
从文件中读取命令操作而不是标准输入中读取
at -c JOB_ID
查看指定的计划任务的具体内容;
比如:
在2019年新年跨年时给liujingyu发一封电子邮件,祝他新年快乐。
用at -c 5 命令查看以后,只有最后两行是我们预先写的语句;
batch命令:
与at命令类似的,默认的队列是b,都是一次性执行的定义的计划任务;
区别是:
batch命令定义计划任务时,无需指定执行时间,系统会自动选择比较空闲的时间来完成此任务;
crond任务的调度进程;能够识别和周期性的执行crontab命令定制的计划任务;
crond定义的计划任务分为两类:
系统任务:
全局性任务:通常使用/etc/crontab文件定义;
其不难看出通用格式:
* * * * * user-name command to be executed
分钟 小时 天 月 星期
注意:
* * * * *:定义周期性执行计划任务的具体时间;
user-name:执行此任务的用户;
command to be executed:此次计划任务的执行主体,建议使用绝对路径;
用户任务:
个体性任务通常存放在/var/spool/cron/目录下的与用户名对于的文件中
此类文件格式:
* * * * * command to be execute
时间表示法:
1.某个特定时间:给定的时间点的有效取值范围内的所有有效值;
0 3 4 9 * (9月4日3点整执行脚本)
2.通配符时间:"*",表示"每..."的意思;
3.离散的时间点:
0 8,20 * * 1,2,4,5 (周1、2、4、5的8点和20点整执行脚本)
4.连续的时间段
0-10 8-12 * * *
5.步进时间:
*/3 * * * * 每三分钟执行一次
*/9 * * * *:无法真正实现每9分钟执行一次;因此默认情况下,步进长度应该是能够被60整除的数字;
注意:最小的时间单位是分钟,如果计划使用不足一分钟的若干秒为执行周期,则必须借助于其他的机制,如:编写shell脚本;
crontab命令:
crontab [-u user] file
crontab [-u user] [-l | -r | -e] [-i] [-s]
-u user:超级用户为自己或其他用户设置或编辑周期性任务时使用的选项;
-l:查看所有的已经被定义好的计划任务列表;
-e:使用vi编辑器编辑临时的crontab文件;
-r:移除所有的计划任务;建议谨慎使用;
-i:在使用-r选项时,能够进行交互式删除;
crontab -e
* * * * * root /usr/bin/date
ls /var/spool/cron/root
里边就会有刚才写的脚本;
查看邮件内容
显示日期;
以上是关于Linux未来任务的调度——at,batch,crontab命令的主要内容,如果未能解决你的问题,请参考以下文章