我的问题是我将数组值设置为服务器的名称,如下所示:
$appserver[$i]=`grep $ip[2] /etc/hosts |awk '{print $2}'`;
后来我做了一个测试,看看服务器是否启动(使用 wget)。如果测试失败,我会通过使用 touch 创建一个具有该名称的文件来跟踪该服务器是否关闭:
$touch=`touch /home/steve/data/$appserver[$i];
该文件已成功创建。后来当我去测试文件是否存在时,它永远不会评估为真。
if(file_exists('/home/steve/data/$appserver[$i])) {
我尝试了几种不同的方法,包括为 $appserver[$i] 创建一个新变量并对其进行测试,但这也不起作用:
我在 RHEL 5 上运行 php 5.1.6。
这是完整的代码:
$appserver[$i]=`grep $ip[2] /etc/hosts |awk '{print $2}'`;
echo "appserver[i] = $appserver[$i]\n";
$get=`wget $key->url 2> /dev/null`;
if(file_exists('/home/user/Start')) {
$color[$i]="green";
$rm=`rm -rf /home/user/Start`;
}
else {
$color[$i]="red";
if($hostname=="xxxxx" ) {
**if(file_exists('/home/user/data/$appserver[$i]))** {**
echo "do nothing appserver file exists\n";
$touch=`touch /home/steve/data/notmailed`;
}
else {
echo "No app file mailed alert\n";
$touch=`touch /home/user/data/$appserver[$i]`;
}
}
}
谢谢你。