如何通过PHP检查我的cronjob是否在我的服务器上运行?

我想发出警告如果cron没有运行或者我的服务器上的crontab中没有设置某个cronjob.

这有可能用PHP检查吗?

解决方法:

您可以解析crontab -l的输出以查看是否存在特定的crontab条目.至于cron是否正在运行,你可以解析ps -eaf命令的输出,看看crond是否正在运行.

$ps -eaf|grep [c]rond
root      1705     1  0 May27 ?        00:00:03 crond

crontab -l的输出将是这样的:

$crontab -l
0 12 * * * ls

注意:您可以使用PHP中的system() function调用命令行工具或exec().

编辑#1

根据您的评论,您可以从PHP执行以下操作.我的脚本,cronstatus.PHP

#!/usr/bin/PHP
<?PHP
exec("PATH=/usr/sbin:/usr/bin:/sbin:/bin; service crond status", $out, $ret);
print $ret . "\n";
?>

示例运行

$sudo service crond stop
Stopping crond:                                            [  OK  ]
$./cronstatus.PHP 
3

$sudo service crond start
Starting crond:                                            [  OK  ]
$./cronstatus.PHP 
0

函数exec可以将命令的输出返回给变量$out以及它在$ret中执行的命令返回的状态结果.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...