Linux环境使用crontab命令设置定时周期性执行任务【含php执行代码】

 更新时间:2019年07月17日 12:03:16   作者:李维山  
这篇文章主要介绍了Linux环境使用crontab命令设置定时周期性执行任务,结合实例形式较为详细的分析了crontab命令的功能、应用场景及相关操作注意事项,并附带了php执行代码供大家参考,需要的朋友可以参考下

本文实例讲述了Linux环境使用crontab命令设置定时周期性执行任务。分享给大家供大家参考,具体如下:

从linux帮助中查看crontab命令有以下参数:

-u username:指定用户操作定时器
-e:编辑定时器(所有)
-l:查看定时器
-r:删除定时器(从/var/spool/cron目录中删除某个用户的crontab文件,默认删除当前用户的)
-i:删除定时器(删除之前给出确认提示)

使用场景1:

执行一些周期性统计的业务操作,例如每天凌晨0:00统计前一天所有业务员及各个小组的业绩、每组人数、任务量、完成量等等,并插入数据库方便查看

使用场景2:

代替人工执行一些循环往复的操作,例如当时女朋友考研坐等分数线公布,写了一个定时程序,实时监听研招网的新闻头条,同时对接短信验证码平台,只要新闻头条的标题变化了,就发送短信到手机上。

(下面以场景2为例使用crontab命令)

要执行的jianting.php代码:

<?php
  $log = "/var/www/html/log.txt";//日志文件(注意设置可写入权限)
  $url = 'http://yz.chsi.com.cn/'; //要监听的网址
  $info= file_get_contents($url);//抓取首页html
  preg_match('|<h4>(.*?)<\/h4>|i',$info,$m);//正则匹配头条标题内容
  if($m[1] != '<a href="/sytj/tjyx/gosytj.action?entrytype=yzgr" rel="external nofollow" target="_blank">2018年全国硕士生招生调剂意向采集服务系统</a>') { //标题改变了
    //判断日志中是否已有记录,如果为空记录一条,并发送短信或邮件通知
    $str = file_get_contents($log);
    $str = trim($str);
    $bom = pack('H*','EFBBBF');
    $str = preg_replace("/^$bom/", '', $str);//去除BOM
    if($str == ""){
      $text = '监听有变化';   
      file_put_contents($log,$text,FILE_APPEND);
      //发送短信或邮件操作
      ......
    }
  }

linux下使用which命令查看php安装路径:

which php

设置定时任务,这里盗了一张网上的图(crontab格式说明):

crontab -e

//执行周期 php安装路径 执行的php文件(注意设置可执行权限)
例如: 5 0 * * * /usr/bin/php /var/www/html/jianting.php //每天凌晨5分执行

10秒执行一次的写法举例:

* * * * * /usr/bin/php /var/www/html/jianting.php
* * * * * sleep 10; /usr/bin/php /var/www/html/jianting.php
* * * * * sleep 20; /usr/bin/php /var/www/html/jianting.php
* * * * * sleep 30; /usr/bin/php /var/www/html/jianting.php
* * * * * sleep 40; /usr/bin/php /var/www/html/jianting.php
* * * * * sleep 50; /usr/bin/php /var/www/html/jianting.php

此时查看已经有了定时任务:

crontab -l

重启crontab服务

service crond restart

换了个服务器,遇到无法执行php文件的问题,解决办法:

5 0 * * * /usr/bin/curl http://www.xxx.com/jianting.php //使用curl命令访问php文件
5 0 * * * cd /var/www/html && /usr/bin/php /var/www/html/jianting.php

希望本文所述对大家Linux服务器配置有所帮助。

相关文章

  • Linux下iptables 禁止端口和开放端口示例

    Linux下iptables 禁止端口和开放端口示例

    本篇文章主要介绍了Linux下iptables 禁止端口和开放端口示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Linux nohup命令原理及实例解析

    Linux nohup命令原理及实例解析

    这篇文章主要介绍了Linux nohup命令原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • linux利用CSF防火墙屏蔽恶意请求

    linux利用CSF防火墙屏蔽恶意请求

    本篇文章主要介绍了linux利用CSF防火墙屏蔽恶意请求,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • linux配置主机名详细介绍

    linux配置主机名详细介绍

    大家好,本篇文章主要讲的是linux配置主机名详细介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦,方便下次浏览
    2021-11-11
  • linux内核copy_{to, from}_user()的思考

    linux内核copy_{to, from}_user()的思考

    本文即将介绍copy_{to,from}_user()接口的使用应,它是kernel space和user space沟通的桥梁,接下来一起学习学习吧
    2021-08-08
  • Linux VPS安全设置之一 修改SSH端口(CentOS/Debian)

    Linux VPS安全设置之一 修改SSH端口(CentOS/Debian)

    我们在学会了VPS的安装和建站之后,肯定需要附带学习VPS的安全设置。因为VPS和主机不同,主机商可能会给我们备份,而且主机的安全性都有主机商承担
    2012-09-09
  • linux下查看系统进程占用的句柄数方法

    linux下查看系统进程占用的句柄数方法

    下面小编就为大家带来一篇linux下查看系统进程占用的句柄数方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Linux下如何使用gdb调试core文件

    Linux下如何使用gdb调试core文件

    这篇文章主要介绍了Linux下如何使用gdb调试core文件,帮助大家更好的理解和学习Linux,感兴趣的朋友可以了解下
    2020-08-08
  • Windows10安装Apache2.4的方法步骤

    Windows10安装Apache2.4的方法步骤

    本文主要介绍了Windows10安装Apache2.4的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2022-06-06
  • linux如何设置定时任务

    linux如何设置定时任务

    这篇文章主要介绍了linux如何设置定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08

最新评论