如何自动化BusyBox telnet

时间:2016-01-04 16:16:52

标签: embedded-linux telnet busybox

我需要在两个嵌入式Linux目标之间使用客户端上的BusyBox v1.22.1和主机上的BusyBox v1.10.3之间的自动telnet脚本。注意:此系统不提供Expect。我已经尝试了here建议而没有成功。例如,这个

host=1.1.1.2
port=23 # note - port is not required
pass=xxxx # note - pass is not required 
cmd1=24

( echo open ${host} ${port}
  sleep 1
  echo -e "\r"
  sleep 1
  echo ${pass}
  sleep 1
  echo -e "\r"
  sleep 1
  echo ${cmd1}
  sleep 1
  echo -e "\r"
  sleep 1
  echo exit ) | telnet

返回此

Usage: telnet [-a] [-l USER] HOST [PORT]
Connect to telnet server
        -a      Automatic login with $USER variable
        -l USER Automatic login as USER

所以我尝试了各种组合使用' (上图)没有成功(它总是要求手动输入'登录')。

在BusyBox v1.22.1上telnet自动登录是否被破坏,或者我只是遗漏了一些简单的东西?

1 个答案:

答案 0 :(得分:1)

最终使用我指出的原始示例使其工作。令人困惑的部分是telnet会话退出而没有退出命令在最后")"。此外,telnet会话期间没有任何命令阻塞,因此每个命令的睡眠时间必须足够长。在这种情况下,'用户'是root,没有密码。我可能需要插入一些echo -e "\r",但这是将合并到脚本中的工作命令:

( echo -e "\r"
  sleep 1
  echo root
  sleep 2
  echo ${cmd1}
  sleep 65
  echo ${cmd2}
  sleep 2
  echo ${cmd3}
  sleep 52 ) | telnet $host