监控php-对php文件进行后台监控和执行(php实时监控)

一目了然查看演示版地址:PHP如何在后台执行

后台执行,即cli模式。

进入php安装目录找到php.exe文件,但是在命令行执行。 具体方法查看指南或者google:phpcli模式。

但对于你提到的需求,是否使用cli模式并不重要。 虽然这只是一个异步请求

您提到的A脚本在执行过程中将数据传输到B脚本。 虽然可以使用http合约,但是可以使用POST或者GET参数来达到数据传输的目的。

5楼给你的函数当然是放在A脚本中通过HTTP合约请求B脚本的函数。 您可以直接在B文件中使用$HTTP_GET_VARS或$HTTP_POST_VARS来获取A脚本传递的数据。

您还可以使用CURL库来实现这些模拟的http请求。

PHP后台线程如何监控数据库?

提供一个很有趣的想法监控php,不要使用cron来实现这个功能比如你的脚本url是[*]php[*]1。 消除脚本的运行时间[*]2。 运行处理代码[*]3.sleep30min[ *] 4. fsocketopen() 5. exit

PHP程序,如何监控显存

看到有人写了Perspective中php监控的示意图,分享给大家。 恐怕你们都做同样的事情。

PHP操作支持的ZendEngine在设计过程中就已经预留了丰富的Hook,可以有效干预处理过程中的几个关键步骤。 借助以下Hooks可以方便的获取数据:

1.zend_compile_filezend_compile_string

加载分析文件或者字符串会造成特别大的IO。 如果进行过多的加载,无疑会造成显存和CPU的消耗。 通过这两个钩子,可以获取文件名、执行行数、使用显存和CPU占用时间。

2. Zend_execute Zend_execute_internal

通过这两个钩子的使用,我们可以准确地分析PHP应用程序中的类调用、方法调用、方法参数、内存使用情况和CPU使用情况。 运行堆栈、API调用地址、SQL语句、CacheKey、Cache命中等关键信息。

3.zend_throw_exception_hook

借助异常钩子,可以准确获取应用系统运行过程中发生的异常信息,其中实际上包括发生异常的类方法的位置、参数、异常代码和异常消息。

4. zend_error_cb

错误钩子更加直接,可以准确获取系统运行过程中出现的任何警告、代码错误或语句错误。

如何在php中实现实时监控文件。

只需在服务器端构建一个根据需要循环的 PHP 脚本即可。

你猜,你的第二个问题,你是否要检查以防止这个脚本被重复触发。

事实上,不建议通过用户操作来触发此脚本,无论是服务器端代码,还是客户端异步Ajax。

如果你想使用PHP脚本进行持续循环监控,请联系运维人员,服务器启动,即脚本在服务器端开始运行,他们会给你提供解决方案。

真正的建议是,如果可能的话,不要使用 PHP 脚本通过循环代码进行服务器端监控。

不得不承认PHP在这方面的稳定性还是很差。 Java显然可以做到这一点,而PHP就更郁闷了。

比较可能的办法是请运维人员帮忙,汇报一下监控逻辑,然后让他安装各种触发条件来调用相应的PHP代码。

如果您坚持使用PHP脚本进行相关工作,有两个建议给您:

监控php_监控php源码_监控php获取外部信息

尽快释放资源,无论脚本使用了什么资源,包括文件、内存、数据库等,都应该尽快释放。 这些地方绝对不能偷懒,否则就会被滥用。

该脚本中进行独立的手动日志输出,任何一层循环的入口都要记录下来,这样监控失败时才有办法找到问题所在。

thinkphp中如何实现后台执行任务

ThinkPHP实现定时任务的两种方式

1.方法一:v3.2.1

①、ThinkPHP/Library/Behavior/CronRunBehavior.class.php文件

这里首先要说的是手动任务执行文件。 官方文件有一个bug。 我使用的是v3.2.1版本。 如果之前的版本已经修正了,你可以尝试一下。

[php]视图平原

/**

*==============================================

*由伟邦科技创建。

*作者:志华_W

*日期:2016/9/220005

*时间:晚上11点12分

*项目:ThinkPHP实现定时执行任务

*Power:手动执行任务

*==============================================

*/

命名空间行为;

类CronRunBehavior

公共函数运行($参数)

如果(C('CRON_CONFIG_ON')){

$this-checkTime();

私有函数checkTime()

如果(F('CRON_CONFIG')){

$crons=F('CRON_CONFIG');

}elseif(C('CRON_CONFIG')){

$crons=C('CRON_CONFIG');

if(!empty($crons)is_array($crons)){

$更新=假;

$log=数组();

foreach($cronsas $key=$cron){

if(空($cron[2])||$_SERVER['REQUEST_TIME']$cron[2]){

G('cronStart');

R($cron[0]);

G('cronEnd');

$_useTime=G('cronStart','cronEnd',6);

$cron[2]=$_SERVER['REQUEST_TIME']+$cron[1];

$crons[$key]=$cron;

$log[]='Cron:'.$key.'Runat'.date('Ym-dH:i:s').'Use'.$_useTime.'s'."rn";

$更新=真;

如果($更新){

ThinkLog::write(implode('',$log));

F('CRON_CONFIG', $crons);

这段代码已经修补了该bug,您可以将其复制到“ThinkPHP/Library/Behavior/CronRunBehavior.class.php”文件中保存。

②、tgs.php

在Application/Common/Conf文件夹中创建tags.php文件来设置标签。

[php]视图平原

返回数组(

//'配置项'='配置值'

'app_begin'=array('BehaviorCronRunBehavior'),

);

③、配置.php

手动运行配置在 Application/Common/Conf 文件夹中的 config.php 文件中完成。

监控php源码_监控php_监控php获取外部信息

[php]视图平原

返回数组(

/*手动运行配置*/

'CRON_CONFIG_ON'=true,//是否启用手动操作

'CRON_CONFIG' = 数组(

'测试执行定时任务'=array('Home/Index/crons','5',''),//路径(格式与R相同),间隔秒数(0仍在运行),指定一个开始时间

),

);

④、IndexController.class.php

编译Application/Home/Controller/IndexController.class.php文件中的定时执行任务。

[php]视图平原

/**

*==============================================

*由伟邦科技创建。

*作者:志华_W

*日期:2016/9/220005

*时间:晚上11点20分

*项目:ThinkPHP实现定时执行任务

*电源:手动任务执行模式控制器

*==============================================

*/

命名空间HomeController;

使用ThinkController;

类索引控制器扩展控制器

/*

公共函数索引(){

$this-show('styletype="text/css"*{padding:0;margin:0;}div{padding:4px48px;}body{background:#fff;font-family:"谷歌雅黑";color: # 333;}h1{font-size:100px;font-weight:normal;margin-bottom:12px;}p{line-height:1.8em;font-size:36px}/styledivh1:)/h1p欢迎来到 bThinkPHP/ b! /p/divscripttype="text/javascript" src=""charset="UTF-8"/script','utf-8');

监控php获取外部信息_监控php源码_监控php

*/

公共函数索引()

$contents=file_get_contents("test.txt");

//每次访问该路径时,输出内容并检查内容的差异

var_dump($内容);

出口;

$this-assign("内容", $contents);

$这个显示();

//定时执行的方法

公共函数crons()

//将内容写入文件

file_put_contents("test.txt", date("Ym-dH:i:s")."执行计划任务!"."rnbr",FILE_APPEND);

这样我们就写好了定时执行任务。 我们每隔5秒访问任意一个项目的url,然后检查根目录下的test.txt文件,发现上述内容发生变化。

注意:当你更改间隔时间时,你会发现它并不生效。 这是因为需要删除Runtime/Data文件夹下的缓存文件,而间隔时间缓存存储在CRON_CONFIG.php文件中。

纯项目文件下载地址:欢迎下载,见谅。

2.方法二:v3.2.2

这种方法和技术一没有太大区别。

①、tags.php

在/Application/Common/Conf 目录中创建一个新的tags.php 文件。 (这个和技术是一样的)

[php]视图平原

返回数组(

//'配置项'='配置值'

'app_begin'=array('BehaviorCronRunBehavior'),

);

②、crons.php

在 /Application/Common/Conf 目录中创建一个新的 crons.php 文件。 (这个和技巧一有区别,注意区分。)

[php]视图平原

监控php_监控php获取外部信息_监控php源码

返回数组(

//myplan是我们计划定时执行的方式,2是间隔时间,nextruntime的最后执行时间

//该文件位于/Application/Cron/目录下

'cron'=数组('myplan',2,nextruntime),

);

③、myplan.php

在/Application/Common/目录下新建Cron文件夹,并在上面新建文件myplan.php。

[php]视图平原

echodate("Ym-dH:i:s")."执行计划任务!"."rnbr";

此时,我们可以访问项目的url,然后我们会发现在Application/Runtime/目录下生成了~crons.php文件。 文件内容如下:

[php]视图平原

返回数组(

'克朗'=

大批(

0='我的计划',

1=60,

2=1398160322,

),

);

然后就可以观察结果了!

PHP编写的后台如何监听浏览器请求,如何让浏览器访问一个地址,后台会有相应的处理?

呃,我不太明白你的意图,所以我就这样回答吧

通常我们访问一个页面时,会输入一个url

此时浏览器发送一个http请求,请求的内容实际上是一个页面

你所说的窃听浏览器请求,与其说是后台脚本在窃听,不如说是服务器在窃听(脚本运行在服务器上)。 是服务器监听端口并执行相应的脚本程序。

通常监控php,我们有两种方式让后台脚本运行。

1是直接访问脚本文件(或动态页面)

2是ajax请求(其实相当于再次运行这个动态页面,只是不让用户听到)

当浏览器访问一个地址时,如果该地址映射到了一个脚本页面,那么该脚本页面就已经开始执行了(也就是所谓的响应浏览器请求)。 其实前提是你的服务器配置了允许PHP脚本运行的环境,PHP脚本才能正常运行

至于监听到请求后如何处理,就看你的脚本页面是怎么写的,你的php文件里写了哪些功能,会执行什么功能