Ubuntu系统下用Crontab命令定时执行PHP文件详解

发布时间 - 2026-01-11 02:05:25    点击率:

前言

一般我在开发中,常用的定时任务有2种。一种是直接调用PHP文件执行,还有一种是调用远程URL地址。

首先,先来亮相一下我们今天的主角,Crontab命令。这个是系统定时命令,作用是定时的去执行一些任务。包含一些系统级别的任务,当然用户也可以直接借用该命令来实现自己的一些计划任务。

该命令一般跟随系统启动,我们可以使用一下命令来查看是否cron是否启动

pgrep cron

如果启动了,会返回一个进程id

Crontab文件一般存放于/etc目录下。我们使用,crontab -e来编辑cron任务。(第一次用这个命令,会让你选择文本编辑器)

打开cron文件,注意观察最后一行 m h dom...这里简要介绍一下它的意思。

  • m:分钟,0-59
  • h:小时,0-23
  • dom:日期,1-31
  • mon:月份,1-12
  • dow:星期,0-6,0为星期天
  • command:命令

这里,我们应该已经知道其大概的用法了。我们只要在对应的位置填写上我们需要的数字日期,就可以使用它来表示:在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command)。

举个栗子:

* * * * * php /path/to/your/cron.php
5个星号分别代表定时指定每分、小时、日、月、周。

* 19 * * * php /var/www/cron/crontab.php
讲第二个参数h填写为19,则表示每天的下午7点执行crontab.php。

* * * * * php /path/to/your/cron.php   
每隔一分钟执行一次任务 

0 * * * * php /path/to/your/cron.php     
每小时的0点执行一次任务,比如6:00,10:00 

6,10 * 2 * * php /path/to/your/cron.php   
每个月2号,每小时的6分和10分执行一次任务 

*/3,*/5 * * * * php /path/to/your/cron.php  
每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10:06

在这个例子中,我们看到不仅有数字还有星号和/等等符号。这些符号可以让定时更加的灵活。

  • *(星号):表示任意值,在相应位置填写*,可以代表任意执行。比如h为*,则为任意的小时
  • ,(逗号):表示一个部分填写多个值,比如在m位置填写1,5代表1分钟或5分钟时候
  • /(斜杠):表示每隔多久,比如在h部分填写*/2表示每隔2个小时,*/3表示每隔3个小时,
  • */1和*无区别,所以可以省略。这里可以想想,*/2表示能被2整除的时间就好理解了。

使用你的编辑器,保存->退出之后。重新启动cron任务。在每天的相应时间即可看到效果。

下面我们就先来说说PHP开发中,我常用的两种。

第一种:直接调用PHP文件

这种比较简单,我们新建一个php文件。向一个文件插入一些简单的日期内容。

#!/usr/bin/php -q
<?php

$file = "/var/www/".date("H")."_".date("i")."_".date("s").".txt";
file_put_contents($file,date("Y-m-d"));

?>

注意:这种直接调用PHP文件需要在PHP文件最上方加入#!/usr/bin/php -q代码,而第二种方式(接下来会讲),是直接访问链接,通过Apache来解析PHP,这种PHP脚本则不需要加这段代码。

1 6 * * * /path/to/your/cron.php
每天的上午6点01分,执行cron.php文件

第二种:通过访问URL链接定时。

访问URL链接需要借助于浏览器来实现。我们选择Lynx浏览器,Lynx浏览器是一款轻便的web浏览器,使用于大部分Unix 和Linux系统环境。安装命令:

sudo apt-get install lynx

然后就可以和直接访问PHP文件类似的定时访问URL啦。

* * * * * lynx -dump http://weiya.me/index.php

注意这个地址最好用绝对地址,包含“http://”的完整url。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# ubuntu  # crontab  # php  # crontab命令  # 执行php文件  # Linux之crontab定时执行脚本方式  # django-crontab 定时执行任务方法的实现  # Linux crontab定时执行Shell脚本需要执行特定的命令时解决思路  # Linux下的crontab定时执行任务命令详解  # Linux定时执行任务at和crontab命令详解  # Centos 7下利用crontab定时执行任务详解  # linux下定时执行任务的方法及crontab 用法说明(收集整理)  # 如何使用Linux的Crontab定时执行PHP脚本的方法  # crontab设置每分钟、每小时、每天、每周、每月、每年定时执行的脚本  # 每隔  # 直接调用  # 来实现  # 如在  # 编辑器  # 每小时  # 第二种  # 就可以  # 自己的  # 我在  # 在这个  # 多个  # 不需要  # 就好  # 两种  # 这段  # 第二个  # 可以直接  # 几分  # 几点 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel中间件如何使用_Laravel自定义中间件实现权限控制  IOS倒计时设置UIButton标题title的抖动问题  高性价比服务器租赁——企业级配置与24小时运维服务  魔毅自助建站系统:模板定制与SEO优化一键生成指南  WordPress 子目录安装中正确处理脚本路径的完整指南  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  C#如何调用原生C++ COM对象详解  详解vue.js组件化开发实践  JS实现鼠标移上去显示图片或微信二维码  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  Laravel如何使用Blade模板引擎?(完整语法和示例)  如何快速完成中国万网建站详细流程?  javascript日期怎么处理_如何格式化输出  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  再谈Python中的字符串与字符编码(推荐)  Python并发异常传播_错误处理解析【教程】  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  微信h5制作网站有哪些,免费微信H5页面制作工具?  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  如何快速使用云服务器搭建个人网站?  Laravel观察者模式如何使用_Laravel Model Observer配置  MySQL查询结果复制到新表的方法(更新、插入)  简单实现Android验证码  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  js代码实现下拉菜单【推荐】  Python高阶函数应用_函数作为参数说明【指导】  如何在阿里云虚拟服务器快速搭建网站?  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  公司网站制作价格怎么算,公司办个官网需要多少钱?  JS去除重复并统计数量的实现方法  Android Socket接口实现即时通讯实例代码  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何在云虚拟主机上快速搭建个人网站?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  制作电商网页,电商供应链怎么做?  如何快速搭建安全的FTP站点?  黑客如何利用漏洞与弱口令入侵网站服务器?  在线制作视频网站免费,都有哪些好的动漫网站?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  佛山网站制作系统,佛山企业变更地址网上办理步骤?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  Laravel distinct去重查询_Laravel Eloquent去重方法  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  如何在景安服务器上快速搭建个人网站?  如何确保西部建站助手FTP传输的安全性?  如何快速查询网站的真实建站时间?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何正确选择百度移动适配建站域名?