Linux下实现计划任务的一般介绍


Linux 计划任务 就是让系统在某个特定的时间自动完成某些特定的工作。

一般来说 Linux 的计划任务大体分为两类,一类是在未来的某个时间一次性的执行某个任务,类似于定时炸弹,炸过一次就没有了。另一类是在未来的某个时间周期性的执行某个任务,这个就像闹钟,每天的早上在固定时间喊你起床。

对于一次性的任务来说, Linux 上主要使用 at , batch 来帮助实现,对于周期性的任务主要有cron , anacron 来实现,下面我们来一一介绍 一次性的计划任务命令 at , batch

at :

   功能说明:在指定时间执行命令

   语     法: at [-ldf]

               -l 查看队列中等待执行的队列,相当于 atq

               -d 删除等待执行的队列。相当于 atrm

               -f 从文件输入将要执行的命令

   Ctrl+d 退出

bash

不需要指定时间,而是自己在系统的使用率比较低的时间,让命令执行,其他和 at 命令相似  

周期性命令 cron

周期性

cron 本身是一种服务,进程名叫 crond     #service crond status

crontab 中保存用户定义的任务计划。分为两类:系统 crontab   /etc/crontab

                 cron.daily ,

cron.hourly

cron.monthly,

cron.weekly

用户 crontab   /var/spool/cron/USERNAME

crontab  文件格式 :

字段               取值

1.MIN             0-59

2.HOUR            0-23

3.DAY             1-31

4.MONTH          1-12

5.WEEK            0-7

6.COMMAND

*: 对应时间域上的所有有效取值

- :对应时间域上的连续时间取值 8-18

,:对应时间域上的离散时间取值 8 , 18

/ :对应时间域的每多久一次进行取值   */8 表示每 8 分钟一次,

周和日月,一般不同时使用。

anacrontab

cron 的 acl

/etc/cron.deny

/etc/cron.allow

如果两个文件都不存在,只有管理员才能定义任务计划

      如果只有 cron.deny 。黑名单,仅拒绝列在 cron.deny 文件中的用户

      如果只有 cron.allow 白名单 , 仅接受 allow 中的用户

      如果两个都存在,此时 deny 被忽略,同只有 cron.allow

相关内容