【发布时间】:2014-06-30 13:12:56
【问题描述】:
我正在尝试在我的 Linux 服务器上设置一个 cron 作业。
我有以下代码
*/1 * * * * root php -f /var/www/html/includes/cron/cron.inc.a.php &> dev/php.log
cron 作业要调用的文件从另一台服务器获取心跳响应。
<?php
$l = new MySQLi();
$l->connect(blah);
$q = $l->query("SELECT * FROM `tbl_latency_stats`");
set_include_path('/var/www/html/includes/');
include("ping/ping.php");
$host = '<IP ADDRESS>';
$ping = new Ping($host);
$latency = $ping->ping();
if (!is_bool($latency)){
if(is_float($latency) || is_string($latency)) {
if(is_string($latency)){
$s = split(".", $latency);
if($s[0] >= 100){
$response_array['status'] = "success";
$response_array['state'] = "WARNING";
$response_array['timedate'] = date("Y-m-d H:i:s");
$response_array['response'] = "High Latency";
$response_array['ping'] = "$latency";
$response_array['message'] = "null";
}else{
$response_array['status'] = "success";
$response_array['state'] = "UP";
$response_array['timedate'] = date("Y-m-d H:i:s");
$response_array['response'] = "LIVE";
$response_array['ping'] = "$latency";
$response_array['message'] = "null";
}
}elseif(is_float($latency)){
if($latency >= 100){
$response_array['status'] = "success";
$response_array['state'] = "WARNING";
$response_array['timedate'] = date("Y-m-d H:i:s");
$response_array['response'] = "High Latency";
$response_array['ping'] = "$latency";
$response_array['message'] = "null";
}else{
$response_array['status'] = "success";
$response_array['state'] = "UP";
$response_array['timedate'] = date("Y-m-d H:i:s");
$response_array['response'] = "LIVE";
$response_array['ping'] = "$latency";
$response_array['message'] = "null";
}
}
}else{
$response_array['status'] = "error";
$response_array['state'] = "UNKONWN";
$response_array['timedate'] = date("Y-m-d H:i:s");
$response_array['message'] = "Unexpected Response!";
$response_array['response'] = "$latency";
$response_array['ping'] = "null";
}
}else {
$response_array['status'] = "error";
$response_array['state'] = "DOWN";
$response_array['timedate'] = date("Y-m-d H:i:s");
$response_array['message'] = "Request Unreachable!";
$response_array['response'] = "$latency";
$response_array['ping'] = "null";
}
$q = $l->query("INSERT INTO `enigmaStat`.`tbl_latency_stats` (`latency_stat_id` ,`latency_stat_date_time` ,`latency_stat_status` ,`latency_stat_response` ,`latency_stat_latency_value` ,`latency_stat_user_text`)VALUES ('' , '".$response_array['timedate']."' , '".$response_array['state']."', '".$response_array['response']."', '".$response_array['ping']."', '".$response_array['message']."')");
?>
但是没有插入。我已经从网站路径运行该文件,并通过命令行手动运行如下:
php -f /var/www/html/includes/cron/cron.inc.a.php
它会插入到数据库中。
我是服务器配置等方面的新手。如果不够详细,我深表歉意,我很乐意添加任何必要的细节来帮助解决问题。
谢谢。
编辑
按照我尝试过的wiki:
env -i sh -c 'php -f /var/www/html/includes/cron/cron.inc.a.php'
它可以工作并插入到数据库中。
【问题讨论】:
-
您能浏览一下 crontab 标签 wiki 上的 Debugging Crontab 部分并添加任何发现吗?
-
@thatotherguy 我已经运行了 wiki 中的所有建议,但没有结果。所有环境模拟都有效。没有日志输出。真的不知道发生了什么。
标签: php linux ubuntu command-line crontab