linux工作调度种类
- 例行性的,隔一定周期进行的事项
- 突发性的
实现这两种功能的命令分别是crontab和at。
- at:执行at时,必须要有atd这个服务的支持。at命令使用示例
[root@hostname ~]# at now + 5 minutes
at> echo "hello" > /dev/tty1
at> <EOF>
job 4 at xxxx-xx-xx xx:xx
其中先指定指令执行时刻,可以选择now + [0-9][0-9]* [minutes|hours|days|weeks|months|years], 或是精确指定 xx:xx xxxx-xx-xx。
执行at会就如所谓的at shell环境,要注意path变量和当前工作目录等。要注意的是,at的执行与终端机环境互关,所有standerd output与standerd error output都会被送至执行者的邮箱中。
正是由于其独立的shell,用户可脱机让atd程序来接管。
atq用于查询at工作调度的数量,atrm用于删除工作。 - crontab:
[root@hostname ~]# crontab -e
此时进入vi编辑
0 12 * * * echo sb
m h d m w cmd
特殊字符:- *:任意时刻
- , :多个时刻
- “-” :范围
- /[0-9][0-9]*:间隔数字个单位
系统的配置文件 /etc/crontab
linux下面的crontab自动每分钟读取/etc/crontab与/var/spool/cron内的内容。
在/etc/crontab中,run-parts命令将后接目录中所有文件找出执行。如果停机了怎么办?例行任务有可能在停机期间没有执行。这里可以用anacron命令。
anacron根据现在的时间与时间记录文件上记载的上次执行anacron的时间,若是时间差大于指定周期,则找出了未执行的crontab任务。
anacron这个程序已经进入了crontab的调度。命名为0anacron,使其于第一位执行,以防止误判时间参数。