一、at一次行定时任务
-
相关服务
at是由atd服务调度的,先查看系统上的atd服务
如没有开启可用service开启。
- 语法:
at [-cmldv] TIME
-m at工作完成后用email通知用户执行结果
-l 相当于atq,查询当前用户的at工作任务
-v 提示任务将执行的时间
-d 相当于atrm命令,后接工作号,delete工作号的任务
-c 后接工作号,可以列出该工作号的实际内容
TIME格式:
例:
快捷键ctr+d结束输入。
-
运行方式
当我们使用at后,生成的命令会以脚本的形式存在/var/spool/at目录内,当使用at -c 查看具体任务内容,实际也是调用该脚本的内容。
a开头的文件就是at生成脚本
我们可以利用/etc/at.allow与/etc/at.deny这两个文件对at进行使用限制,具体情况是这样的:
1.若存在allow文件,则文件内的用户可使用at,其他人不能使用at;
2.若存在deny文件,则文件内的用户不能使用at,其他人可以使用at;
3.若两个文件都存在,则allow生效;若都不存在,那么只用root可以使用at。
at特色是后台执行,是放入系统的后台执行,与当前的终端无关,即使关闭远程终端定时任务也可按时执行。
-
batch命令
batch是基于at命令的,它会在 CPU负载小于0.8时才进行工作任务,也就是在系统空闲时再进行任务,使用与at相同。
二、crontab循环定时任务
-
相关服务
crontab的服务是crond,查看系统上crond服务
-
权限设置
与at类似,由/etc/cron.allow及/etc/cron.deny配置文件决定使用权限。 -
语法
crontab [-elr]
-e 以当前用户,编辑工作内容
-l 查阅工作内容
-r 移除所有工作内容
- 编辑crontab的格式
***** 命令
每个*号代表的意义
特殊符号:
编辑后的任务会存放在/var/spool/cron/*下,*是编写crontab时的用户名。
-
系统定时任务
除了使用crontab -e来添加定时任务之外,在/etc/crontab里也可以编辑定时任务,该文件特点是可以指定用户权限来执行定时任务,所以该文件也只能由root才能编写。 -
配置文件
在/etc/cron.d下有crontab的配置文件,比如让系统每小时执行一次/etc/cron.hourly/内的可执行脚本文件等。
三、anacron唤醒停机期间的工作任务
anacron的主要目的是在主机因断电等原因停机导致定时任务没有被执行,在开启主机后会重新执行这些定时任务。
anacron会每个小时检测一次时间,对比上次执行的定时任务时间是否超过一天、一周、一个月,若超过则在延迟一定时间后执行/etc/cron.daily、/etc/cron.weekly、/etc/monthly中的脚本。
网友评论