前段时间看到同事用C#写的监控程序,是通过ssh到linux系统上执行命令或者脚本,得到返回的数据来监控系统或者进程的状态。笔者以前写过一篇文章可以使用PHP语言来执行shell语言,即shell_exec函数,从而通过网页来监控系统或者进程的状态,具体可以参考文章-php语言怎么执行shell脚本语言来实践。
但是笔者想着可以使用熟悉的labview来完成这个工作吗。平时都是用putty来远程ssh到linux系统,但是使用命令行来中putty时,在labview使用System Exec VI 函数时执行执行一次,ssh连接上后是无法执行后面的指令的。同样的,windows10支持ssh,但是使用System Exec VI 函数时也执行执行一次。可能C#时微软的平台,可以一直执行吧。
辗转反侧在VI Package Manager (VIPM)上找到了SSH工具,于是实验一番。
ALAB SSH工具安装。lab -SSH实现了Secure Shell (SSH),它是一种加密网络协议,用于在不安全的网络上安全地运行网络服务。SSH在客户端-服务器架构的不安全网络上提供了一个安全通道,将SSH客户端应用程序(运行LabVIEW的PC)与SSH服务器连接起来。
一、SSH连接执行命令ls。
前面板,需要输入远程IP地址,用户名和密码,这个和所有SSH是一样的。
程序框图。打开SSH连接,确认已经连接,写入SSH命令,延时,读取命令返回数据,关闭SSH连接。笔者在写程序时一直读取不到返回数据,原因时写读命令之间是需要延时的!
二、SCP远程上传下载文件
在安装ALAB SSH工具还有一个工具-SCP VIs。
前面板,需要输入远程IP地址,用户名和密码,和选择文件。
程序框图有四个函数。
打开SCP:使用SSH登录凭据建立到远程服务器的SCP连接。
上传文件:通过Upload-SCP将本地PC上的样例文件上传到远端设备。
下载文件:从远程设备的相同路径下载相同的文件到本地机器的另一个文件夹。
关闭SCP:关闭SCP会话。如果在结束时不调用VI并停止执行,则可能会出现崩溃。在最后总是调用Close-SCP VI是至关重要的。