Linux 定时任务调度(crontab命令)

Stella981
• 阅读 753
  1. crond 是Linux下用周期性的执行某种任务或者等待处理某些事件的一个守护进程,crond 进程会每分钟定期检查是否有要执行的任务,如果有要执行的任务则自动执行该任务

  2. Linux 下的任务调度

    1. 系统任务调度:系统周期性所要执行的工作,如:写缓存数据到硬盘、清理日志等。系统任务调度的配置文件 /etc/crontab
    2. 用户任务调度:用户定期要执行的工作,比如数据库备份、定时邮件提醒等。所有用户定义的crontab文件都保存在/var/spool/cron目录中。文件名与用户名一致。
  3. crontab 文件的含义
    用户所建立的crontab文件中,每一行代表一项任务,每行的每个字段代表一项设置,共分六个字段,前五段是时间设定段,第六段是要执行的命令段
    minute hour day month week command Linux 定时任务调度(crontab命令)

         在以上各个字段中,还可以使用以下特殊字符:
    
         星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
    
         逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
    
         中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
    
         正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次
    
  4. crontab 服务

    1. service cron start //启动服务
    2. service cron stop //关闭服务
    3. service cron restart //重启服务
    4. service cron reload //重新载入配置
    5. service cron status //查看服务状态
  5. 查看服务是否已经运行用 ps -ax | grep cron

  6. crontab命令选项:

    1. -u指定一个用户
    2. -l列出某个用户的任务计划
    3. -r删除某个用户的任务
    4. -e编辑某个用户的任务
  7. 新增任务调度

    1. 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
    2. 直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
  8. 查看任务调度

        crontab -l //列出当前的所有调度任务
        crontab -l -u jp   //列出用户jp的所有调度任务
    
  9. 删除任务调度

        crontab -r   //删除所有任务调度工作
    
  10. 利用任务调度执行Shell脚本,在Shell脚本中执行PHP文件,可以做到每秒执行一次PHP文件

1.  假设脚本为 aaa.sh (一定要给该文件可执行的权限) 内容为:
    
            #!/bin/bash
            int=1
            while(( $int<=60 ))
            do
                php /var/www/html/index.php 
                echo $int
                 let "int++"
                 sleep 1
            done
        
    
2.  PHP文件(如果执行不成功可以尝试给该文件授权为755) 内容为:
    
            <?php
            echo "this is zhuchenglin's website!";
        
    
3.  执行如下命令:
    
    1.  sudo corntab -e 编辑定时任务 内容,加上下面内容(里面是绝对路径):
        
                * * * * * sh /var/www/html/aaa.sh >> /var/www/html/crontab.log
                #后面将输出的内容重定向到日志文件中是为了看定时任务是否执行
            
        
    2.  编辑好后,保存并退出
        
    3.  重启cron服务
        
                service cron restart
            
        
    4.  过大概一分钟后查看日志文件内是否有内容 (尽量给该日志文件足够的权限)
        
                cat /var/www/html/crontab.log 
            
        

注:本文参考:Linux定时任务crontab命令详解linux定时任务的设置 crontab 配置指南
如需转载请注明出处:http://www.cnblogs.com/zhuchenglin/p/8758444.html

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java目前可以通过以下几种方式进行定时任务
1、单机部署模式Timer:jdk中自带的一个定时调度类,可以简单的实现按某一频度进行任务执行。提供的功能比较单一,无法实现复杂的调度任务。ScheduledExecutorService:也是jdk自带的一个基于线程池设计的定时任务类。其每个调度任务都会分配到线程池中的一个线程执行,所以其任务是并发执行的,互不影响。
胖大海 胖大海
2年前
Linux定时任务详解
crond定时任务详解crond是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,可以在无需人工干预的情况下运行作业。我的环境是3A服务器搭建centos7.9,延迟低安装crond服务yuminsta
Stella981 Stella981
3年前
Linux计划任务 定时任务 Crond 配置详解 crond计划任务调试 sh
一、Crond是什么?(概述)crontab是一款linux系统中的定时任务软件用于实现无人值守或后台定期执行及循环执行任务的脚本程序,在企业中使用的非常广泛.  现在开始学习linux计划任务程序吧。crontab的优势:可以实现24小时或定期执行任务,非常高效实用,几乎是每个企业
Stella981 Stella981
3年前
Linux的定时任务
任务计划的条件:1.在未来的某个时间点执行一次某个任务(atbatch)2.周期性的执行某个任务(cron)at在指定时间执行任务_用法_at\选项参数\\时间\_选项参数_\l      查看作业\c      显示即将执行任务的细节\d      使用任务id号
Stella981 Stella981
3年前
Linux下crontab命令的用法
crond是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存2、个人执行的工作:某个用户定期要做的工作,例
Stella981 Stella981
3年前
JFinal Quartz 支持配置文件和持久化
    随着需求的增加,现在要定时启动一个调度和计划任务,原先写的QuartzPlugin,是持久化保存到数据库中的,从数据库中读取任务并执行。要是添加一个每天循环任务,就要在代码里写一次开始任务的代码,执行后,再注释掉,最后重启项目。否则会因为启动同name,同group的任务而报错org.quartz.ObjectAlreadyExistsE
Wesley13 Wesley13
3年前
MySql中的事件
一、前言自MySQL5.1.0起,增加了一个非常有特色的功能–事件调度器(EventScheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作。更值得一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Wind
芝士年糕 芝士年糕
2年前
Linux定时任务(cron服务)
使用3A服务器搭建centos系统crond服务详解cron是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,可以在无需人工干预的情况下运行作业。安装crond服务yuminstallcroniecrond服务启动systemctlstartcrondsystemctlenablecrondcrond服务解
汪昭 汪昭
1年前
Disjob—分布式任务调度框架
简介Disjob是一款分布式的任务调度框架,天然为支持分布式长任务执行而设计,它除了具备常规的任务调度功能外,还提供:任务拆分及分布式并行执行、暂停及取消运行中的任务、恢复执行被暂停的任务、任务执行失败重试、保存任务的执行快照(Savepoint)、任务依