Linux | 了解Linux中的任务调度---at与crontab 命令
一. 延迟任务
1.1 延迟任务的发起 -- at命令
- at命令执行是调用的是atd服务,即使系统最小化安装atd也会被安装到系统中
- at 任务信息存放在系统中/var/spool/at目录中
- at 任务的日志文件被存放到/var/log/cron中
- at 任务执行时如果遇到系统处于关闭状态,那么在开启时atd任务会检测未执行的任务并且立即执行
- 延时任务发起 (默认为交互式)
- 利用脚本完成延时任务发起(非交互)
- 可以提高效率,将脚本上传到多台主机上运行
1.2 at命令参数
at -l | 查看任务列表 |
at -c 任务号 | 根据任务号查看任务内容 |
at -r 任务号 | 删除任务 |
at -m | 当任务完成之后,即使没有标准输出,也给执行者发送邮件 |
at -d 任务号 | 取消一个在at调度中的工作 |
at -v | 使用较明显的时间格式,列出at调度中的任务列表 |
at -f | 从文件中读取作作业 |
1.3 安全优化
1.3.1 黑名单 /etc/at.deny
1.3.2 白名单 /etc/at.allow
- 默认不存在,建立之后只有超级用户可以执行
- 只有在白名单里面的用户可以执行at命令
- 白名单出现后,黑名单里的内容会被系统忽略
二. 定时任务
2.1 概念
- 在系统中/etc/cron/filename 是系统级定时任务,只有root用户可以发起
- 定时任务执行是调用的是crond服务,即使系统最小化安装crond也会被安装到系统中
- 定时任务信息存放在系统中/var/spool/cron目录中,存放文件和发起人名称一致
- 定时任务的日志文件被存放到/var/log/cron中
- 定时任务执行时如果系统处于关闭状态,那么在系统开启时crond任务会检测未执行的任务并且立即执行