我正在连接到telnet侦听器。 Telnet服务器每秒发送一些数据。我想在X秒钟内阅读消息并将其写入文件(本示例将花费6秒钟)。
注意:本示例的IP地址已更改为“ IP”。与“端口”相同。
我已经尝试了一些方法:
#!/bin/bash
#myScript.sh
telnet IP Port >> myFile.txt
sleep 6
pkill myScript.sh
此解决方案写入我的文件,但我的脚本永无休止。
这是我的第二个主张:
#!/bin/bash
#myScript.sh
timeout 6 telnet IP Port >> myFile.txt
这是另一个问题,遵守超时,脚本在6秒后结束,但是在“ myFile.txt”中,我有
Trying IP...
Connected to IP.
Escape character is '^]'
如何正确设置此脚本?
注意:我必须使用Telnet。
答案 0 :(得分:0)
在第一个解决方案中,您可以尝试尝试:
telnet IP Port 2>&1 | tee myFile.txt &
sleep 6
exit
这会将telnet命令发送到后台进程,然后在6秒后退出。
在第二个解决方案中,您可以尝试:
timeout 6 telnet IP Port 2>&1 | tee myFile.txt
这会将stderr和stdoutt发送到myFile.txt
https://www.gnu.org/software/libc/manual/html_node/Standard-Streams.html
或者按照其他人的建议,使用netcat:
timeout 6 nc -vz IP Port 2>&1 | tee myFile.txt