在shell脚本中进行Telnet

Vij*_*jay 6 unix shell telnet

如何在shell脚本中运行telnet并在远程服务器上执行命令?

由于安全原因,我不希望在我的solaris机器上安装.我也没有net::telnet安装perl 模块.

那么使用expect和perl我怎么能这样做?

我尝试了以下的东西,但它不起作用.

#!/usr/bin/sh
telnet 172.16.69.116 <<!
user
password
ls
exit
!
Run Code Online (Sandbox Code Playgroud)

当我执行它时,这就是我得到的:

> cat tel.sh
telnet 172.16.69.116 <<EOF
xxxxxx
xxxxxxxxx
ls
exit
EOF
> tel.sh
Trying 172.16.69.116...
Connected to 172.16.69.116.
Escape character is '^]'.
Connection to 172.16.69.116 closed by foreign host.
> 
Run Code Online (Sandbox Code Playgroud)

crw*_*crw 12

您的某些命令可能会被丢弃.您可以使用普通的脚本构造实现更好的控制,然后通过管道发送所需的命令echo.将命令列表分组以进行一个"会话": -

{
sleep 5
echo user
sleep 3
echo password
sleep 3
echo ls
sleep 5
echo exit
} | telnet 172.16.65.209
Run Code Online (Sandbox Code Playgroud)

  • +1还是更好,切换到`nc`(Netcat),它比`telnet`更为神秘,它专为交互式使用而设计. (4认同)