[英]Executing a bash script from a remote server PHP
我正在嘗試從遠程服務器運行bash腳本,並將服務器的結果輸出回我的html / php頁面,以便用戶可以看到輸出。 有誰知道最好的方法嗎?
這是我到目前為止的內容:
<?php
include 'res/php/functions.php';
$gateway = 'remoteserver';
$user = 'user';
$pass = 'pass';
function cleanInput($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
//when the submit button is clicked
if ( $_SERVER['REQUEST_METHOD'] == 'POST'){
//$gateway = cleanInput($_POST['gateway']);
//create the ssh connection
if ($connection = @ssh2_connect($gateway, 22)) {
ssh2_auth_password($connection, $user, $pass);
if(isset($_POST['option']) && $_POST['option'] == 1) {
$output =
shell_exec("/tmp/testscripts/up.sh");
}
if(isset($_POST['option']) && $_POST['option'] == 2) {
$output =
shell_exec("/tmp/testscripts/down.sh");
}
//remove this if you want to see $output in this file
echo "<pre>$output</pre>";
}
}
?>
我找到了答案。 請參閱以下內容。
$stream = ssh2_exec($connection, "/tmp/moslehpour/testscripts/up.sh");
stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
echo stream_get_contents($stream_out);
}
if(isset($_POST['option']) && $_POST['option'] == 2) {
$stream = ssh2_exec($connection, "/tmp/moslehpour/testscripts/down.sh");
stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
echo stream_get_contents($stream_out);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.