PHP脚本命令行执行成功,CRON无法执行故障解决记录

先来看看一个最简单的PHP文件(ip.php)

<?php
$myip = get_ip_cmd();
echo($myip);

// get ip address
function get_ip_cmd(){
    $ip_cmd = "ifconfig eth1 | sed -n '/inet /p' | awk '{print $2}'";
    $ip_cmd = @exec($ip_cmd);
    $ip_cmd = str_replace('addr:', '', trim($ip_cmd));
    return $ip_cmd;
}
?>

再来看看cron设置

0       0       *       *       *       php /root/ip.php

再来看看cron报错

From root@coffeetest.localdomain  Tue Dec 18 09:55:01 2018
Return-Path: <root@coffeetest.localdomain>
X-Original-To: root
Delivered-To: root@coffeetest.localdomain
Received: by coffeetest.localdomain (Postfix, from userid 0)
    id 17DAC40A3E; Tue, 18 Dec 2018 09:55:01 +0800 (CST)
From: "(Cron Daemon)" <root@coffeetest.localdomain>
To: root@coffeetest.localdomain
Subject: Cron <root@coffeetest> php /root/ip.php
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=4669>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20181218015501.17DAC40A3E@coffeetest.localdomain>
Date: Tue, 18 Dec 2018 09:55:01 +0800 (CST)

sh: ifconfig: command not found

解决办法,修改php文件,把ifconfig命令路径补全。

<?php
$myip = get_ip_cmd();
echo($myip);

// get ip address
function get_ip_cmd(){
    $ip_cmd = "/usr/sbin/ifconfig eth1 | sed -n '/inet /p' | awk '{print $2}'";
    $ip_cmd = @exec($ip_cmd);
    $ip_cmd = str_replace('addr:', '', trim($ip_cmd));
    return $ip_cmd;
}
?>
原文地址:https://www.cnblogs.com/coffee_cn/p/10135512.html