在手机中,我们常常使用备忘录或者是闹钟等来提醒我们该做什么事情了,在Linux操作系统中,也有类似的操作。

      在Linux中除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划好的系统管理任务(如定期备份、定期采集监测数据)。RHEL6系统中默认已安装了at、cronie软件

包,通过atd和crond这两个系统服务实现一次性、周期性计划任务的功能,并分别通过at、crontab命令进行计划任务设置。

、at—一次性计划任务

 1、准备

 at的适用前提是at程序已经安装并运行atd服务(atd服务是Linux下一次性定时计划任务命令的守候进程)

  如果没有安装at程序则需要首先安装at程序—— yum install at -y

  如果没有运行atd服务则需启动atd服务—— systemctl restart atd;查看是否成功启动atd服务可以用命令  ps aux | grep  atd  来抓取atd进程信息,如下图所示即为成功。

Linux的任务计划管理

2、设置at计划任务  

  接下来万事俱备,我们便可以调用at程序来设置我们的一次性计划任务了

  at的格式是 ——at  H:M   Y-m-d (H/M:小时/分钟    Y/m/d:年/月/日)特别注意at的时间格式,若是不加上后面的年月日便自动表示为今天,则为12小时制,上午要在时间后标明am(上午)或pm(下午)。

  打出命令后,会弹出可供输入的命令行,在里面输入想要执行的操作后,摁 Ctrl + d 保存

  设置完可以用—— at -l 或者 atq 来查看已设置的计划

3、删除计划任务

  当我们不想要这个计划后,可以输入 atrm i  来进行删除操作(i代表计划任务的编号,每个任务都会在行首 标明编号,可以利用at -l 或atq来查看)。   值得注意的是删除任务后编号不会归零而是继续向下顺位。

4、特殊计划任务的写法

Linux的任务计划管理

二、crontab定时任务的使用

语法与常用命令 

 相比于一次性计划任务,crontab可以多次的执行计划,可以在固定的某月某周某天某时某分来执行,也可以设置为每经过多长时间便执行一次

  它的语法为—— crontab -u  -e

     -l:list,列出指定用户的计划任务列表——查看命令

               -e:edit,编辑指定用户的计划任务列表

               -u:user,指定的用户名,如果不指定,则表示当前用户

               -r:remove,删除指定用户的计划任务列表

编写计划任务

  在进入 -e 编辑模式后,已行为单位,每一行就是一个计划,需要执行的命令要写成绝对路径的格式,

   代表取值范围里的每一个数字,拿第一个举例子,如果第一位是  则代表每一分钟都会执行一次该命令

    - 代表取值范围,例如 在 10点到12点之间就可以在第二个 设置为  10-12 即可

    / 代表每多少个,例如想要每10分钟执行一次,可在分的位置设置  */10

    代表多个数值,例如想在1,2,6点执行,便可在时的位置设置为 1,2,6

  Linux的任务计划管理

 删除任务计划

    我们想要删除刚刚编写的计划,用——crontab  -r就可以进行全部删除注意这个命令是全部删除,但是有时候我们创建了多条计划想进行批量删除可以进入编辑模式,然后在不想要的计划前面加上#(其实就是把这一行注释掉啦)