《鸟哥的Linux私房菜》第十六章-例行性工作排程,阅读笔记。
简介
- 一次性任务:at,使用的是 atd 这个服务
- 多次性任务:crontab,使用的是 crond 这个服务,可循环的时间分为分钟,小时,每周,每月,每年(为啥没精确到秒呢?)
Linux 系统一般都有些默认的例行任务,比如:登录档轮替(log rotate)、登录档分析(logwatch)等。
at 的使用
入门级命令:
- 启动:/etc/init.d/atd start
- 设置开机自启:chkconfig atd on
- 原理:at 这个命令来产生所要运行的工作,并将这个工作以文字档的方式写入 /var/spool/at 目录内以供 atd 服务的读取和运行。
- 权限设置:限制某些用户不能使用 at 命令。权限设置文件有:/etc/at.allow, /etc/at.deny, 它们的工作方式:
- 先寻找 /etc/at.allow, 只有该文件登记的用户可以使用 at 命令
- 若没有找到 /etc/at.allow, 则寻找 /etc/at.deny, 没有在该文件登录的用户都可以使用 at 命令
- 若也没有找到 /etc/at.deny, 则只有 root 可以使用 at 命令
具体的 at 命令
命令语法:
小例子:
正如上面所说,还有两个额外命令:
- atq,查询排程
- atrm [job-num],删除某个排程
系统清闲时再执行的排程
即是使用 batch 命令了,用法跟 at 命令一样滴!只有在 CPU 工作负载小于 0.8 时才执行,除此之外查询、删除啥的都是跟 at 一样的,也就是说它就是 at 一特殊别名吧!
关于 cron
cron 的权限设置跟 at 是一样滴:/etc/cron.allow 和 /etc/cron.deny
crontab 语法:
小例子:
复杂的时间语法:
如果关机了,定时任务怎么办?
很明显,如果关机了定时任务就执行不了了。。。所以有一个基于 cron 的关机使用版本(就是下次开机时还是会执行的) anacron,现在用的不多,也不废话了,用到了直接看这里吧!