Merhaba hocam, while döngüsünün içinde return yaptırdığınız için sadece ilk değeri döndürüp duruyor doğal olarak. Return'u while döngüsünün dışına alır iseniz, sorun düzelecektir.
Yorumunuz için teşekkürler aşağıdaki gibi denedim oldu sayılır ama bir sorun var.
Bastırdım hepsini yazdı fakat örnek veriyorum
Sunucu1 - 127.0.0.1 - 1.14 2.10 1.40
<?php serverName() ." - ". serverIP(); . " - " . Load(); ?>
şu şekilde 10 sunucu varsa 10 'ununda verisini yeniden çekip çekip alt alta sıralamak istiyorum fakat şu durumdan nasıl toplarım onu düşünüyorum.
Şuanda tek <li> tagının içine yazıyor hepsini amacım web sayfasının istediğim yerine istediğim değerleri alabilmek yani uptime(); dediğim yere sadece uptime değerlerini yazmak.
MySQL cümlesini değiştirip tek sütunu çekiyorum fakat bağlantı kısmı patlıyor o kısmı başka fonksiyon oluşturup oraya alıp bu fonksiyonda nasıl kullanabilirim sizce?
<?php
function Load($load = "awk '{ print $1\" \" $2\" \" $3 }' /proc/loadavg"){
$cikti = array();
require('config.php');
$sql = $db->prepare("SELECT * FROM servers");
$sql->execute();
while($row=$sql->fetch(PDO::FETCH_ASSOC)) {
if (!function_exists("ssh2_connect")) die("SSH2 fonksiyonu bulunmuyor.");
if(!($conn = ssh2_connect($row['serverIP'], $row['serverPort']))){
echo "Bağlantıda problem/ler mevcut.\n";
} else {
if(!ssh2_auth_password($conn, $row['serverUser'], $row['serverPass'])) {
echo "Kimlik doğrulaması başarısız.\n";
} else {
if (!($stream = ssh2_exec($conn, $load))) {
echo "Komut gönderilemedi\n";
} else {
stream_set_blocking($stream, true);
$data = "";
while ($buf = fread($stream,4096)) {
$data .= $buf;
}
fclose($stream);
if($data < "0.10 0.10 0.10"){
$cikti .= $row['serverName']."<font color=green> ".$data."</font><br>";
}
else if($data < "0.20 0.20 0.20"){
$cikti .= $row['serverName']."<font color=orange> ".$data."</font><br>";
}
else{
$cikti .= $row['serverName']."<font color=red> ".$data."</font><br>";
}
}
}
}
}
return $cikti;
}
?>