• 27-06-2022, 22:18:03
    #1
    Selam arkadaşlar.
    php ile ssh üzerinden komut çalıştırmayı deniyorum. Fakat komutun çalışabilmesi için bir klasöre giriş yapmam lazım.
    ssh üzerinden klasöre girip çalıştırdığım zaman çalışıyor.

    Php üzerinden SSH bağlantımda sıkıntı yok.
    fakat ssh bağlantım direk root dizinine giriyor. Tek kod üzerinde klasöre girip çalıştırmasını istiyourm.

    cd goparrot-twap klasörüne girip şu dosyayı çalıştırmam lazım cmd/cli.go
    fakat beceremedim.
    Kodum şu şekilde.

    $baglanti = ssh2_connect('xx.xxx.xx.xx', 22);
    ssh2_auth_password($baglanti, 'root', 'xxxxxxxxxxx');
    
    
    $sonuc = 'go run cmd/cli.go';
    
    
    $stream = ssh2_exec($baglanti, $sonuc);
    
    
    stream_set_blocking($stream, true);
    $stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
    echo stream_get_contents($stream_out);
  • 27-06-2022, 22:23:40
    #2
    $sonuc = 'cd klasördizini && go run cmd/cli.go';
    Klasör dizini olan kısmı çalışacak program neredeyse örnek: cd /root/program gibi dizini yazarak o dizine girip ardından go komutunu çalıştırmasını sağlayabilirsiniz. Yazacağınız kodların arasına && koyarak birden fazla kod çalıştırabilirsiniz.
  • 27-06-2022, 22:33:30
    #3
    sftcore adlı üyeden alıntı: mesajı görüntüle
    $sonuc = 'cd klasördizini && go run cmd/cli.go';
    Klasör dizini olan kısmı çalışacak program neredeyse örnek: cd /root/program gibi dizini yazarak o dizine girip ardından go komutunu çalıştırmasını sağlayabilirsiniz. Yazacağınız kodların arasına && koyarak birden fazla kod çalıştırabilirsiniz.
    evet hocam siz yazarken bende benzer bir kaynak okuyordum. Peki bir sorum daha olacak.
    Başarılı olan sonucu nasıl ekrana bastırabilirim.
    Bir hata oldugunda ekrana geliyor. Ama başarılı oldugunda gelmiyor.
  • 27-06-2022, 22:41:55
    #4
    emrezsy adlı üyeden alıntı: mesajı görüntüle
    evet hocam siz yazarken bende benzer bir kaynak okuyordum. Peki bir sorum daha olacak.
    Başarılı olan sonucu nasıl ekrana bastırabilirim.
    Bir hata oldugunda ekrana geliyor. Ama başarılı oldugunda gelmiyor.
    Hocam ben daha öncesinde şöyle kontrol ediyordum
    <?php
    $defsrc = "programadı";
    $checkfinal = $sshroundtwo->exec("if (( $(ps -ef | grep -v grep | grep ${defsrc} | wc -l) > 0 ));then echo 'on'; else echo 'off'; fi");
    if (trim($checkfinal) == "on"){
        echo "Çalışıyor";
    }else{
        echo "Çalışmıyor";
    }
    ?>
    Sunucuda arka planda çalışıp çalışmadığına bakarak on ve off şekilde geri dönüş alarak kontrol ediyordum.