linux命令:任务计划crontab anacrontab at cron

时间:2021-04-16 14:20:29

任务计划:

1、在未来的某个时间点执行一次某任务: at  batch  

    格式: at time     直接用 at 时间  即可  at -l 查看计划列表

     at> COMMAND

     at> Ctrl+d

   指定时间:

     绝对时间:HH:MM  DD.MM.YY  MM/DD/YY   

     相对时间:now+#

        单位:minutes,hours,days,weeks

     模糊时间:noon,midnight,teatime

   命令的执行结果将以邮件的形式发送给安排任务的用户

   at -l查看未执行的任务计划 at -l=atq

   at -d JOB_ID  取消未执行的任务计划 at -d 计划任务ID号

   at的黑名单和白名单的文件/etc/at.deny /etc/at.allow 

[root@localhost ~]# at -l

[root@localhost ~]# at -l

32016-12-17 08:36 a root

22016-12-17 08:28 a root

[root@localhost ~]# at -d 2

[root@localhost ~]# at -l

32016-12-17 08:36 a root  编号2任务计划已取消

Usage: 

[root@localhost ~]# at now+3minutes  3分钟后执行

at> ls /var    需要执行 ls/var 命令

at> cat /etc/fstab   需要执行 cat /etc/fstab 命令

at> <EOT>          按ctrl+d完成任务计划

job 1 at 2016-12-17 08:16

[root@localhost ~]# 

   

2、周期性地执行某任务:执行结果将以邮件的形式发送给管理员

   cron:自身是一个不间断运行的服务

 anacron: cron的补充,能够实现让cron因为各种原因在过去的时间该执行而未执行的任务在恢复正常        执行一次;


 cron配置文件:/etc/crontab

[root@localhost ~]# cat /etc/crontab 

SHELL=/bin/bash      #定义执行脚本的shell为/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin  #定义脚本执行的环境变量位置

MAILTO=root      #执行结果发送给root用户

HOME=/          #家目录


run-parts:表示按照该目录或文档的顺序执行里面的所有命令脚本

01 * * * * root run-parts /etc/cron.hourly   每小时的第一分钟

02 4 * * * root run-parts /etc/cron.daily   每天的4点02分

22 4 * * 0 root run-parts /etc/cron.weekly   每周日的4点22分

42 4 1 * * root run-parts /etc/cron.monthly  每月1日的4点42分

  cron:

    系统cron任务:

     配置文件/etc/crontab

    格式:  分钟 小时 天 月 周 用户 任务

    用户cron任务:

     配置文件/var/spool/cron/USERNAME

    格式:  分钟 小时 天 月 周 任务

   时间的有效取值:

     分钟:0-59   小时:0-23  天:1-31  月:1-12  周:0-7,0和7都表示周日

   时间通配表示:

      *:对应的所有有效值  

         3 * * * * : 每小时的第3分钟

         3 * * * 7 :每周日的每个小时的第3分钟

         13 12 * * * :每天的12点13分钟

      ,: 离散时间点:

         10,40 02 * * 2,5 :每周二,周五的2点10分和2点40分

      -:连续时间点:

         10 02 * * 1-5 :每周一到周五的2点10分

     /#: 对应取值范围内每多久一次  比每单位小的时间必须固定某个时间点

         */3 * * * * :每隔3分钟

         10 */2 * * * : 每隔2小时执行一次

         10 06 */2 * * : 每隔2天执行一次

   

    cron的环境变量:cron执行所有命令都去PATH环境变量指定的路径下去找


3、用户任务的管理:

   crontab  要想crontab执行,crond服务必须正在运行,

          查看运行状态 service cront status


[root@localhost ~]# service crond status

crond (pid  3733) 正在运行...


       -l:列出当前用户的所有cron任务

       -e:编辑cron任务,按下a进行输入,按esc再输入:wq保存退出。

           [root@localhost ~]# crontab -e  先输入crontab -e 再按a进行编辑,

                         编辑完后按esc再输入:wq保存退出。

           */3 * * * * /bin/echo "how are you?"

           

       -r:删除所有cron任务,只移除某一条计划任务,只需crontab -e编辑删除其中的任务即可

       -u:USERNAME 管理其用户的cront任务

 

   anacrontab: /etc/anacrontab


本文出自 “学linux历程” 博客,原文地址: http://woyaoxuelinux.blog.51cto.com/5663865/1883578