当前位置:  开发笔记 > 编程语言 > 正文

使用php作linux自动执行脚本

使用php作linux自动执行脚本,阅读使用php作linux自动执行脚本,用PHP作一社区,在写到计算最高上线人数时,成功调试出把PHP作为shellscript直接在服务器上运行.在作社区时,时常需要统计上线人数等数据.一般做法是,把这段代码放在用户login或者某一个页">

用PHP作一社区, 在写到计算最高上线人数时, 成功调试出把PHP作为 shell
script直接在服务器上运行.

在作社区时, 时常需要统计上线人数等数据. 一般做法是, 把这段代码放在用户

login或者某一个页面中, 以便在用户登录或访问到该时,触发运行该代码. 这样

一来, 会造成一个问题, 如果该代码教复杂, 明显减慢该页的正常调用速度.

 

利用PHP 的这种特性,加上linux的crontab指令,即可自动定时执行某一个php文

件(统计在线人数等).

 

具体方法:

在安装PHP的时候,会产生一个可执行文件,文件名为php.将它 copy 到 /usr/local/bin

下.

 

在终端方式执行php程序: php -q onlinnum.php

注意到 PHP 原本是应用在网页应用的﹐因此它内定会送出 HTML 的

HEADER﹐但 是在此我们是要将 PHP 用作 Shell Script﹐"-q" 就是表示不要送 出

HEADER 的意思.你可以试试看不加上 -q 的显示结果。

 

此时你已经可以在终端方式下执行PHP 代码了. 呵呵,可以试试执行你以前写的

代码.

 

linux命令:cron daemon

这是一个系统中常驻的服务,功能在于执行例行性的工作,如每天一次或每月一

次检查磁盘。cron daemon 会在每分钟检查一次排定的工作表(crontab),看

看是否有要执行的指令,所有的输出会以mail寄给用户。

 

设置 crontab

命令:crontab -e

该命令呼叫vi编辑器来编辑执行的清单。例如

&nbs p; 0 0 1,15 * * fsck /home

&nbs p; 1 * * * * /home/Gull/onlinnumber

每一行代表一项排定的工作,在指令前为排定的时间,总共有5个栏位,以空格

间隔,由左到右依序如下:

栏位 &nbs p; 说明

---------------------- ----

分钟 从00到 99

点钟 从0到 24

日 &nbs p;从01到31

月 &nbs p;从01到12

星期 从01到07, 代表星期一到星期日

*号表示"每" ,如每天执行,就在第三栏填 *号

所以上例的两项工作是:

每月1号和15号检查/home 磁盘

每小时的第一分执行 /home/Gull/onlinnumber 这个文件

 

查看crontab:crontab -l

删除crontab:crontab -r

 

呵呵,到这里,你应该知道该怎么利用PHP和crontab命令来统计在线人数了吧?

 

需要注意:

如果php中有使用数据库,如oracle等,执行脚本中还需export Oracle的环境设

置。因为cron下的脚本执行的用户都是在没登陆状态下执行的,少了很多系统里

设置的环境变量的值,在连接数据库的时候会出问


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
author-avatar
blue一个人的秋天_854
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有