AI智能
改变未来

Linux基础命令之计划任务


一、计划任务

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没有执行的计划任务,如果有,会立即执行一下没有执行的任务。            

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Linux基础命令之计划任务