一次性计划任务
at命令管理计划任务
at timespec 创建计划任务,交互式输入,ctrl+d结束 at timespec < myscript 从脚本中输入任务 at -l 列出计划任务 at -c jobnum 查看计划任务详细信息 at -d jobnum 删除计划任务
at计划任务的原理:
at不是计划任务,只是一次性计划任务atd的管理工具
atd是一次性计划任务的真正执行者,at只是一个管理atd的工具
会在/var/spool/at下生成一个脚本文件,执行计划任务,实际上就是执行/var/spool/at下的一个脚本
at对于超时的任务,会在atd服务启动后立即执行
timespec 举例
-
8:05am
-
4pm +3days
-
04:00 2017-05-30
-
teatime tomorrow
-
详情查看/etc/share/doc/at/timespec
atq
#列出计划任务,相当于at -l [root@localhost ~]# atq 1 Fri Dec 30 11:30:00 2022 a root 2 Fri Dec 30 11:30:00 2022 a root 3 Fri Dec 30 11:30:00 2022 a root
-
第一列:任务的编号
-
第二列:计划任务的执行时间和日期
-
第三列:计划任务被排入默认队列a,-q指定队列a-z,从a到z优先级是从高到低,a的nice是2z到19
-
字母越大,优先级越低
-
队列的优先级在系统资源匮乏的时候可以判定哪个任务先执行
-
第四列: 任务的优先级
周期性计划任务
crontab命令管理周期性计划任务
crontab不是周期性计划任务,周期性计划任务由crond服务进行管理
crontab -e 创建计划任务 crontab -l 查看计划任务 crontab -r 删除所有计划任务 crontab -u 指定用户给计划任务
计划任务时间格式
* * * * * 任务 时间格式 (匹配的具体的时间点) 分钟 小时 日 月 星期 分时日月周 01 12 * * * 每天的12点01分执行计划 01-15 12 * * * 每天的12:01至12:15分中间每分钟执行一次 */5 10,11 * * * 每天的10点11点每隔五分钟执行一次 布置计划可能要写命令的绝对路径 如果命令多 在脚本中写命令的路径
计划任务相关文件
-
计划任务是否执行成功 看日志
-
路径在/var/log/cron
-
/etc/crontab 系统的计划任务 系统全局计划 没有用户之分
-
/etc/cron.d 系统的计划任务