私の問題は、次のように配列値をサーバーの名前に設定することです。
$appserver[$i]=`grep $ip[2] /etc/hosts |awk '{print $2}'`;
後で、サーバーが稼働しているかどうかを確認するテストを行います (wget を使用)。テストが失敗した場合、touch を使用してその名前のファイルを作成することで、そのサーバーがダウンしていることを追跡します。
$touch=`touch /home/steve/data/$appserver[$i];
ファイルが正常に作成されます。後でファイルが存在するかどうかをテストするときに、true と評価されることはありません。
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]`;
}
}
}
ありがとうございました。