Telnet中的变量

时间:2016-03-07 14:21:15

标签: bash telnet

我创建了一个bash脚本,通过telnet将其记录到服务器中。现在我想在进入telnet会话之前在bash脚本中先前指定cat $var >> /path/on/server/a.log. $ var get。不知何故,输出"sh: ---------------------------: not found“是在telnet会话中创建的。

我想这是因为我的file.log有多行。第二行是“---------------”。

这是我的剧本:

#!/bin/bash
var=$(cat /path/to/local/file.log)
sleep 1
sh << EOF | telnet 192.168.178.72
sleep 2
echo user
sleep 1
echo pass
sleep 5
# echo "$var" >> /path/on/server/file.log (Can't Test because saving the var is not working)
sleep 5
EOF

我的最终目标是将file.log放到服务器上。唯一的连接方式是通过telnet。客户端不支持ssh或rsync或任何东西。

编辑: 更多信息:

脚本无需在客户端上运行。我也可以在服务器上运行它。我更喜欢在客户端上运行脚本。

1 个答案:

答案 0 :(得分:0)

我建议采用这样的方法:

#!/bin/bash
(
echo "telnet 192.168.178.72"
sleep 2
echo user
sleep 1
echo pass
sleep 5
echo "cat >> /path/on/server/file.log"
sleep 5
cat /path/to/local/file.log
) | sh

请注意,最终可能会在远程服务器上执行/path/to/local/file.log的内容。我强烈建议你考虑一下这个安全问题,或者找一些更好的方法。