一、计划任务

1、at 只能执行一次

       语法: at  时间

       服务:atd  必须开启

​         1、[root@xuegod163 ~]​​​​# /etc/init.d/atd status   #查看服务状态​

​         2、atd (pid  2206) is running...​

​         3、[root@xuegod163 ~]​​​​# /etc/init.d/atd start    #启动服务​

   【例如】   

​         1、[root@xuegod163 ~]​​​​#at 20:00 2015-2-23   #创建计划任务在2015年2年23日20:00执行​

​         2、[root@xuegod163 ~]​​​​#at now +10min       #创建计划任务在十分钟后执行​

    1.1 at查询

​         1、[root@xuegod163 ~]​​​​# at -l                 #查询当前的计划任务​

​         2、32015-02-03 20:55 a root​

​         3、22015-02-23 20:00 a root​

​         4、[root@xuegod163 ~]​​​​# ll /var/spool/at/*  ​

​         5、-rwx------  1 root   root   3842 Feb  3 20:45 ​​​​/var/spool/at/a00002016a5170​

​         6、-rwx------  1 root   root   3842 Feb  3 20:45 ​​​​/var/spool/at/a000030169e127​

​         7、PS:执行成功的at计划任务会在该目录下成生一个可执行的脚本文件​

    1.2 at任务删除

         语法:atrm at序列号

              1、​​[root@xuegod163 ~]​​​​# atrm 2​

2、Crond周期性计划任务

     2.1 配置文件

          1、​​[root@xuegod163 ~]​​​​# vim /etc/crontab​​​​   ​​2.2 开启服务

          1、​​[root@xuegod163 ~]​​​​# /etc/init.d/crond status    #查看服务状态   ​

       2、​​crond (pid  2195) is running...​

       3、​​[root@xuegod163 ~]​​​​# chkconfig --list crond      #查看是否开机启动​

       4、​​crond          0:off1:off2:on3:on4:on5:on6:off​

       5、​​[root@xuegod163 ~]​​​​# chkconfig crond on        #设置服务开机自启动​

       6、​​[root@xuegod163 ~]​​​​#ls /etc/cron*              ​

       7、​​/etc/cron​​​​.hourly   ​​​​/etc/cron​​​​.daily   ​​​​/etc/cron​​​​.weekly    ​​​​/etc/cron​​​​.monthly​

       8、​​PS:对于系统级别的计划任务,需要执行的命令和脚本都放在这里​

    2.3 针对用户级别的计划任务  

                    对于root用户:

                    crontab –e    #创建  

                    crontab –l     #显示

                    crontab –r     #删除

                    格式:分 时 日 月 周 命令

                    取值范围:

                    分:0-59

                    小时:0-23

                    日:1-31

                    月:1-12

                    周:0-7   (0 和7 都是周日)

      2.4 crontab的使用         

        1、[root@xuegod163 ~]# crontab -e 

        2、57 20 * * *  echo `date` > /tmp/date.txt

        3、[root@xuegod163 ~]# date           #查询当前时间            

        4、Tue Feb  3 20:57:11 CST 2015

        5、[root@xuegod163 ~]# cat /tmp/date.txt 

        6、Tue Feb 3 20:57:01 CST 2015

        7、【例】 特殊写法

        8、#每月9,18,22日的3点1分,开始执行备份脚本

        9、1  3  9,18,22  * *  /usr/bin/back.sh

        10、#每月9-18日,3:00执行

        11、0  3  9-18  * *  /usr/bin/back.sh

        12、#每5分钟,执行一次

        13、*/5  *  *  * *  /usr/bin/back.sh

        14、【例】 每天删除5天前的文件

        15、[root@xuegod163 ~]# crontab -e   

        16、1  1  * * *  find /home/log/ -type f -mtime +5 -exec rm {} \;

        17、【例】 使用root身份,给其它普通用户指定crontab

        18、语法:crontab -u USERNAME  -e/-l/-r

        19、[root@xuegod63 ~]# crontab -u mk -e

        20、1 * * * *  touch /tmp/a.txt

        21、【例】 清除其他用户的计划任务

        22、[root@xuegod63 ~]# crontab -u mk -r

        23、【例】 清空root用户自己的计划任务:

        24、[root@xuegod63 ~]# crontab  ​​-r​

   2.5 anacron

           cron用控制循环执行例行性工作。如果我要设定机器每天早上8点进行备份服务。除非保证机器   在8点这个时间点不会关机,如果关机了,cron中的脚本,在下次开机将不会被执行。

            anacron并没有取代cron的意思,anacron用于机器重启后,会侦测停机期间,有没有cron没有执行的计划任务,如果有,会立即执行一下没有执行的任务。