我创建了一个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或任何东西。
编辑: 更多信息:
脚本无需在客户端上运行。我也可以在服务器上运行它。我更喜欢在客户端上运行脚本。
答案 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
的内容。我强烈建议你考虑一下这个安全问题,或者找一些更好的方法。