欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux计划任务

程序员文章站 2022-03-12 19:55:26
在服务器中添加定期执行的任务,在很多情况下是非常必要的。比如,每天清理一次/tmp目录下的文件;没几分钟检查某一守护进程是否正常等等。这样计划任务就显得尤为方便。 ......

  我们可以通过一些设置。来让电脑定时提醒我们该做什么事了。或者我们提前设置好,告诉电脑你几点做什么几点做什么,这种我们就叫它定时任务。而遇到一些需要执行的事情或任务。我们也可以通过命令来告诉电脑一会临时把这个工作给做一下.

  在我们linux中,我们可以通过crontab和at这两个东西来实现这些功能的

  计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据

  计划任务的安排方式分两种:

  一种是定时性的,也就是例行。就是每隔一定的周期就要重复来做这个事情.

  一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务.

at和crontab这两个命令:

at:它是一个可以处理仅执行一次就结束的指令

crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直循环执行下去。

一:at

    语法:  # at 时间

    1.下载at 软件   yum  -y install  at

    2. 启动atd 服务 systemctl  start std

    3.设置任务

       at 10:00                          #如果是上午时间,后面加上am,比如9:20am

       at> touch /tmp/test1                         #输入你要执行的命令

       at> <eot>                                    #按ctrl+d保存

      job 1 at fri mar  1 10:00:00 2019

   4.查看计划任务

      at -l                          #查看计划任务

         fri mar  1 10:00:00 2019 a root

      atq                            #查看计划任务

         fri mar  1 10:00:00 2019 a root

   5.删除计划任务  atm

          atrm   1                          #删除计划任务加上编号

at计划任务特殊写法

 

   at 20:00 2018-10-1   在某天
   at now +10min   在 10分钟后执行
   at 17:00 tomorrow   明天下午5点执行
   at 6:00 pm +3 days   在3天以后的下午6点执行

  

二:crontab 计划任务的使用

    语法:#crontab -u  -e

          常用选项:

            -l:list,列出指定用户的计划任务列表

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

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

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

crontab  -e  编辑时的语法:

Linux计划任务

 

0或者7都是表示星期天,另外在这个时间的表达式中,还有些特殊符号,意思如下:

四个符号:

*:表示取值范围中的每一个数字

-:做连续区间表达式的,要想表示1~7,则可以写成:1-7

/:表示每多少个,例如:想每10分钟一次,则可以在分的位置写:*/10

,:表示多个取值,比如想在1点,2点6点执行,则可以在时的位置写:1,2,6

例:

每天凌晨2点1分:1 2 * * * 
每月1、10、22日的4 : 45:45 4 1,10,22 * * 
每月1到10日的4 : 45:45 4 1-10 *  *
每隔两天的上午8点到11点的第3和第15分钟:3,15 8-11 */2 *  *

  

注:在计划任务中,默认的最小单位就是分,不能再小了;所有用户的计划任务,都会在/var/spool/cron/下产生对应的文件.