介绍
计划任务分一次性计划任务和周期性计划任务,计划任务的执行结果不显示在终端上。
一次性计划任务at
想要使用at命令首先得开启atd服务
查看atd服务是否启动成功:
atd没有启动输入systemctl start atd.service启动atd。
按照时间 日期的顺序输入,在at>后面输入命令,由于计划任务执行时不显示在终端上,所以后面加上>/dev/pts/0将执行内容显示在终端上,到了对应的时间就会执行该命令并发送一个邮件给用户。
进入at>后,会发现退格建无法使用,crtl+退格键即可正常删除。crtl+c不保存输入的命令并退出,crtl+d保存命令并退出。
atq:查询创建的一次性任务和这个一次性任务由谁创建。
atrm:删除一次性任务,后面接任务的序号ID。
计划任务默认保存在/var/spool/at目录下,创建任务会在该目录下创建一个可执行文件。
在at命令中时间的指定方式有很多种
表示时间的方式 | 解释 |
---|---|
tomorrow,yesterday等 | 明天,昨天 |
3am,3pm | 上午3点下午3点 |
teatime | 下午4点 |
noon | 中午12点 |
只写时间不写日期 | 默认今天 |
周期性计划任务crontab
一次性任务不常用,而crontab则常常使用。
crontab按照预先设置的时间周期重复执行指定的命令,crontab的全局配置文件位于/etc/crontab,系统默认的设置,位于目录:letc/cron.*用户定义的设置,位于文件:/varlspool/cron/用户名。
进入/etc/crontab文件
前三行表示的是全局变量。下面的五个*表示时间数值,第一个代表分钟,第二个代表小时,第三个代表日期,第四个代表月份,第五个代表周几。
时间数值有几个特殊表示方式
*表示该范围内的任意时间
,表示间隔的多个不连续时间点
-表示一个连续的时间范围
/指定间隔的时间频率
crontab -e:创建周期性任务,会进入一个类似vim编辑器的文件,按照分 时 日 月 周 命令 的格式,命令建议写成绝对路径,确保执行成功。
crontab -l:查看周期性计划任务
crontab -r:删除所有周期性任务,慎用,建议crontab -e在里面进行删除。
crontab -u usrname -e:对usrname的周期性计划任务进行管理
crontab -u usrname -r:删除usrname的周期性计划任务
crontab有一个黑名单,用来禁止用户创建周期性计划任务的,用户可以创建一个/etc/cron.allow文件(白名单)系统优先看白名单,没白名单就看黑名单。