PHP 7.2 で ssh2 を使用して、リモート ファイアウォール fortigate でいくつかのコマンドを実行しようとしています。Ssh接続はうまくいきますが、私の問題は、fortigateでは1行で多くのコマンドを送信できないことです。つまり、 "'$ command1'. ' && '.'. $ command2 '". 同じセッションでコマンド 1、次にコマンド 2、最後にコマンド 3 を実行するために、3 つの連続したコマンドを送信するのに役立つコードはありますか?
これは私の実際のコードです
<?php
$consulta1 = 'config firewall policy';
$consulta2 = 'edit 32';
$consulta3 = 'set status disable';
$consulta4 = 'end';
$connection = ssh2_connect('192.168.0.100', 22);
ssh2_auth_password($connection, 'user', 'pass');
$ejecucion = "$consulta1 ; $consulta2";
$stream = ssh2_exec($connection, $ejecucion);
stream_set_blocking($stream, true);
$datos = "";
while($buffer = fread($stream, 4096)){
$datos .= $buffer . "<br>";
echo $buffer;
}
fclose($stream);
ssh2_disconnect($connection);
?>
"'$ command1'.' && '.' を送信した場合 $ command2 '" は、ssh コマンドとして構文エラーを返しました。これは、fortigate が 1 行で多くのコマンドをサポートしていないためです。