我有一个连接到 telnet 端口的 bash 脚本;打开一些诊断;退出;并且,打开另一个 telnet 端口。
要检查脚本是否正常工作,我可以使用 jQuery 和 AJAX 执行它,但我无法不断更新div
结果。
我不想在重新加载到时继续调用相同的命令php
,div
而只想刷新结果。
bash 脚本非常基本:
#!/bin/bash
{
sleep 2
echo diag gps info
sleep 2
echo exit
} | telnet 10.10.2.1 1700
telnet 10.10.2.1 1800
HTML/PHP 文件:
<!DOCTYPE HTML >
<html>
<head>
<meta charset="UTF-8">
<title>diag stuff</title>
</head>
<body>
<button id="startGpsDiag" >Start gps diag</button>
<div id="results"></div>
</body>
<!-- <script langauge="JavaScript" src="{#javaScriptDir#}/jquery-min-1.8.js"> </script> -->
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
jQuery(document).ready(function () {
jQuery.ajaxSetup({cache: false});
jQuery("#startGpsDiag").click(function () {
// alert('true');
callGpsDiag();
});
function callGpsDiag(){
jQuery.ajax({
type: "POST",
url: "gpsDiag.php",
data: "execGpsDiag=1",
success: function(data) {
alert('success');
jQuery('#results').html(data);
setInterval(function() {
jQuery('#results').html(data);
},3000);
},
error: function() {
// alert('fail');
}
});
}
});
</script>
php逻辑文件:
if(isset($_POST['execGpsDiag'])) {
echo system('./gpsdiag.sh');
}
我可能想编辑 bash 文件并删除最后一个 telnet 连接,它是我要监视的连接,并将其移动到php
逻辑中,如果我们最初没有设置诊断来监视端口
我也尝试过echo system(telnet 10.10.1.2 1800)
并尝试setinterval
自行加载监控端口但无法获得任何结果
如果我从命令行运行gpsDiag.php
,echo system(telnet 10.10.1.2 1800)
或者 echo system('./gpsdiag.sh');
它可以工作并将结果显示到屏幕上。