admin管理员组文章数量:1531714
2024年4月25日发(作者:)
1如何在 telnet 上Linux主机后远程执行主
机上的shell脚本
/archiver/
从 Windows telnet 到 Linux,建立 主机 与 设备 的通信,这是典型的嵌入
式测试环境。
我的问题代表了一类人的需求。
[url]/forum/topic/82393-telnet-in-back
ground/page__p__590023#entry590023[/url]
这个4楼的帖子具有相当的参考价值。又是一种方法。稍作修改和封装,如下:
[code]
;Using native socket connection to simulates a TELNET connection to
communicate with Linux machine for sending commands and
receiving info from it
$port = 23
$user = "root"
$passwd = "xxxxxx"
TCPStartup()
$socket = TCPConnect($host, $port)
If $socket = -1 Then
MsgBox(48, "Error", "Connection fail!")
Exit
EndIf
Sleep(300)
$ack = TCPRecv($socket, 150)
If StringInStr($ack, "login") > 0 Then
TCPSend($socket, $user & @CRLF)
Sleep(500)
TCPSend($socket, $passwd & @CRLF)
Else
MsgBox(48, "Error", "Cannot connect")
Exit
EndIf
wait_cmd_prompt($socket)
TCPSend($socket, $cmd1 & @CRLF)
wait_cmd_prompt($socket)
TCPSend($socket, $cmd2 & @CRLF)
wait_cmd_prompt($socket)
TCPCloseSocket($socket)
TCPShutdown()
;=========================================
==========================================
=============
; Function Definition
;=========================================
==========================================
=============
;Wait for desired command prompt character "#" before sending.
Func wait_cmd_prompt($sk)
Local $ack
Do
$ack = StringStripWS(TCPRecv($sk, 300), 2)
Sleep(300)
;MsgBox(0,"",$ack)
Until StringRight($ack, 1) = "#"
;MsgBox(0,"","out of loop")
EndFunc[/code]不过,我一楼发的问题还没得到解决。
运行设备端(Linux环境)的脚本(shell脚本)远比远程命令控制来得可靠,
因为这样Linux的一些环境变量是可继承的。
继续研究中。
minterz 发表于 2011-2-22 19:51
linxu下的bash脚本如果要远程启动
可以使用plink 使用ssh远程控制
xiehuahere 发表于 2011-2-23 12:11
谢谢楼上的,我试试。
另外,这样也行:
TCPSend($socket, "/home/ " & $param & @CRLF)
版权声明:本文标题:如何在 telnet 上Linux主机后执行命令 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1714007659a382743.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论