计划任务详解

news/2024/11/7 5:41:19/

计划任务:根据自己的时间计划去执行指令或者执行脚本,让计算机到时间自动运行。

分类

         》 一次性计划任务  at (服务名为atd) 软件名为at

        》周期性计划任务分为两种:1、crontab  -e  ,2、/etc/crontab

 

============   一次性计划任务   ======================
  

RHEL 7    systemctl start atd       临时启动服务 systemctl enable atd      开机自启动设置方法:相对计时法now + n minutes   n分钟后now + n hours         n小时后now + n days        n日后now + n weeks       n周后例如:#一分钟后输出“2222..”到终端pts0 ,按ctrl+d完成输入[root@class2 ~]# at now +1 minutesat> echo "2222222222" > /dev/pts/0at> <EOT>job 1 at Wed Dec  6 08:05:00 2017Can't open /var/run/atd.pid to signal atd. No atd running?绝对计时法:例如:17:30执行任务输出“2222..”到终端pts0 ctrl+d结束输入[root@class2 ~]#  at 17:30at> echo "2222222222" > /dev/pts/0at> <EOT>相关配置文件:/var/spool/at/a000110154c7d2  #at目录下都是计划任务可执行程序,记录和保存所有用户的计划任务,执行完成之后,文件消失。也可以在这里直接删除对应的执行文件,达到删除任务效果/etc/at.allow      #允许使用at的用户 在里面直接添加用户名/etc/at.deny	      #禁止使用at的用户   在里面直接添加用户名相关命令:at -l #查看和管理系统中的计划任务 每个任务对应一个序号at -c  18 #查看序号为18的任务的详情,主要看最后的部分。at -d  17 #删除序号为17的任务

===============周期性计划任务==========================

 

       1、使用命令:crontab  -e 【user】

           说明:这是个人周期计划任务,不写默认为当前用户的计划任务,/var/spool/cron/目录下会有以用户名命名的文件用于存放计划任务
  

格式:(“分时明星”,这样记忆方便一点)*      *     *       *        *                 /bin/bash /test/apache.s分钟    小时   日      月      星期                 执行命令时间范围      0-59    0-23  1-31    1-12    0-6可用的连接符号,      和       不连续-      到*      每/     每隔 ;这里 *  写法等价于 */1

   实例:=========================


                   ==1、apache服务器上,要求,"""" 天凌晨 4点钟 4:00 , 备份 /data -→ /backup+

                               0 4 * * * cmd

                  ==2、周二 “”“” 周五,的下午6:00点,备份一次

                              0 18 * * 2,5 command 非连续时间,用 , 号分割

                 ==3、1月份 “”“” 3月份,周二和周六,下午6:00点,备份一次

                            0 18 * 1-3 2,6 command 连续时间段,- 标识

                ==4、天14到18点之间,每 “”“” 10分钟,备份一次

                                 */10 14-18 * * * command 隔 -- */N

               ==5、每天14点到18点之间的 “”“” 10分钟 执行一次
                                 10 14-18 * * * command

                       解析 ### 10 14-18 * * * command
                            14:10 15:10 16:10 17:10 18:10

               == 6、3月份到6月份,和9月份到12月份,周一到周五,中午的12点到14点,每2分钟运行一次 command

                            */2 12-14 * 3-6,9-12 1-5 command

crond            -- 服务程序
crontab        -- 配置工具。
/usr/lib/systemd/system/crond.service       服务启动脚本位置systemctl start crond       #启动          RHEL6 :  service crond start      
systemctl enable crond       #开机自启      RHEL6 :   chkconfig crond oncrontab 的任务文件保存的位置:==================================crontab -e 先写入缓存,保存的时候系统检查没有语法错误,会将新任务写入到/var/spool/cron 目录下,以用户名命名的同名文件中。查 看系统中的crontab任务:======================================只有管理员能操作crontab -u new1 -l  查看new1用户的任务crontab -u new1 -e 编辑new1用户的任务限制用户使用crontab命令:=======================================/etc/cron.allow	        #允许使用crontab命令的用户/etc/cron.deny        ##拒绝使用crontab命令的用户

  2、vim /etc/crontab  

         说明:系统级别的计划任务比crontab级别高,一般用这种方法来运行备份打包,关键是有run-parts执行目录下脚本。

注意:
    两种方式:
             *   *   *   *   *     root     /test/dir1/test.sh            ####执行单个任务,以root用户运行
             *   *   *   *   *     root     run-parts    /test/dir1    ###运行目录下的所有可执行程序,以root用户运行

举例:*   *   *   *   *    root   /bin/echo "111111111" > /dev/pts/0       (直接写命令)*   *   *   *   *    root    /test/dir1/test.sh            (运行单个脚本)*   *   *   *   *    root    run-parts    /test/dir1      (运行目录下的所有可执行程序)

 

如果系统断电或者宕机,错过任务执行的时间,怎么办?

anacron 任务:
            是cron服务的扩展,配合cron服务一起使用,当系统断电或者宕机,错过任务执行的时间时,系统启动后它会再次执行未执行的任务。


配置文件:/etc/anacrontab

       #period in days                     delay in minutes                    job-identifier                      command
        命令执行的频率(天数)      延迟时间(分钟)                 任务描述                             要执行的命令
        1                                               5 cron.daily                           nice                                  run-parts /etc/cron.daily
         7                                              25 cron.weekly                      nice                                   run-parts /etc/cron.weekly
         @monthly                                45 cron.monthly                    nice                                   run-parts /etc/cron.monthly

说明:

         对于每个计划任务,anacrontab先判断在period(执行频率)期间内是否被执行了,如果没执行则等待delay(延迟时间),再次执行该任务。一般情况下该文件不用修改,知道原理就可以。

 

 

 

 


http://www.ppmy.cn/news/404126.html

相关文章

02 任务

1.单位定义存储单位&#xff1a;存储在计算机硬盘或内存中的信息容量标准&#xff0c;最小计量单位是“位”&#xff08;Bit&#xff0c;比特&#xff09;&#xff0c;一个Bit位表示一个二进制的0或1在计算机中所占用的存储空间 传输单位&#xff1a;在计算机网络中称为带宽&a…

一篇博客搞定C++11之Lambda表达式(附案例代码+解析)

Lambda表达式 1.lambda表达式语法2.捕获列表说明3.lambda表达式实现原理4.具体案例5.总结 1.lambda表达式语法 ambda表达式的语法非常简单&#xff0c;具体定义如下&#xff1a; [ captures ] ( params ) specifiers exception -> ret { body } 先不用急于解读这个定义&…

从零开始 Spring Boot 41:事件

从零开始 Spring Boot 41&#xff1a;事件 图源&#xff1a;简书 (jianshu.com) Spring 实现了一个简单、实用的事件框架&#xff0c;利用它我们可以在多个组件之间进行松耦合式的通信。 简单示例 让我们从一个简单的示例开始&#xff1a; public record Email(String addr…

简要介绍 | 三维点云配准:理论、方法与挑战

三维点云配准&#xff1a;理论、方法与挑战 注&#xff1a;”简要介绍“系列仅从概念上对某一领域进行非常简要的介绍&#xff0c;不适合用于深入和详细的了解 三维点云配准 是计算机视觉和机器人领域的重要课题&#xff0c;涉及从不同视角或时间点采集的三维点云数据之间寻找最…

【无标题】面试常考算法(3):二叉树遍历(创建、遍历、销毁)

这部分不够熟悉的话&#xff0c;面试直接递归就行。不过实际中虽然递归在某些情况下可以提供简洁和优雅的解决方案&#xff0c;但可能占用大量的内存空间和导致额外时间开销&#xff0c;所以还是尽量使用非递归。因为每次递归调用时&#xff0c;函数的局部变量和参数都需要在栈…

VBA基础(宏编程)

VBA介绍&#xff1a; Visual Basic for Applications&#xff08;VBA&#xff09;是 VisualBasic 的一种宏语言&#xff0c;是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展 Windows 的应用程序功能&#xff0c;特别是Microsoft Office…

360全景拍摄为什么要使用鱼眼镜头,与超广角镜头区别?

360全景摄影&#xff0c;通常使用8mm至15mm鱼眼镜头。360全景摄影之后以一定要选择鱼眼镜头进行360全景摄影&#xff0c;其主要原因为了单张照片拍摄到较大的视角范围&#xff0c;从而以较少的照片拼接成一个360全景图。 使用8mm鱼眼镜头&#xff0c;360全景摄影少则拍摄…

vue3+ts+vite+element plus中使用luckysheet(预览效果)

前言&#xff1a; 这两天一个项目&#xff0c;需要在页面中以excel的形式展示大量数据&#xff0c;喜欢偷懒的我果断扒拉了一堆适用于vue3的插件&#xff0c;下面简单说说我使用的luckysheet 使用&#xff1a; 一、准备一个vue3tsviteelement plus的项目 此处省略n个字。。。…