zoukankan      html  css  js  c++  java
  • Linux 定时任务调度(crontab命令)

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

    2. Linux 下的任务调度

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

  • 相关阅读:
    C# 获取当前路径7种方法
    C# 获取当前路径7种方法
    C#委托的介绍(delegate、Action、Func、predicate)(转)
    C#委托的介绍(delegate、Action、Func、predicate)(转)
    DevExpressGridView自定义行高
    DevExpressGridView自定义行高
    C#IO读写txt文件的两种方法
    C#IO读写txt文件的两种方法
    NoSQL 简介
    NoSQL 简介
  • 原文地址:https://www.cnblogs.com/zhuchenglin/p/8758444.html
Copyright © 2011-2022 走看看