Ben ssh üzerinde bir php komut dosyası içinde uzak komutları çalıştırmak için çalışıyorum, ve ben kaynak ana aktarılabilir komutları (stdout ve stderr) den çıktı istiyorum.
Perl ve Ruby bu mümkün olduğunu biliyorum. Ben php böyle örnekler bulamadı.
Kod:
$ip = 'kssotest.yakabod.net';
$user = 'tester';
$pass = 'kmoon77';
$connection = ssh2_connect($ip);
ssh2_auth_password($connection,$user,$pass);
$shell = ssh2_shell($connection,"bash");
$cmd = "echo '[start]';your commands here;echo '[end]'";
$output = user_exec($shell,$cmd);
fclose($shell);
function user_exec($shell,$cmd) {
fwrite($shell,$cmd . "\n");
$output = "";
$start = false;
$start_time = time();
$max_time = 2; //time in seconds
while(((time()-$start_time) < $max_time)) {
$line = fgets($shell);
if(!strstr($line,$cmd)) {
if(preg_match('/\[start\]/',$line)) {
$start = true;
}elseif(preg_match('/\[end\]/',$line)) {
return $output;
}elseif($start){
$output[] = $line;
}
}
}
}
Ben bu gibi çalıştırmak Ama $php remote.php
, ben bir hata alıyorum:
PHP Fatal error: Call to undefined function ssh2_connect()
in /home/tester/PHP_SSH2/remote.php on line 6
Ssh üzerinden PHP uzaktan komutları çalıştırmak için en iyi yolu nedir?