Linux脚本在一段时间内将telnet消息中的数据写入文件

时间:2019-07-05 06:56:27

标签: linux bash telnet

我正在连接到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。

1 个答案:

答案 0 :(得分:0)

  1. 在第一个解决方案中,您可以尝试尝试:

    telnet IP Port 2>&1 | tee myFile.txt &
    sleep 6
    exit
    

这会将telnet命令发送到后台进程,然后在6秒后退出。

  1. 在第二个解决方案中,您可以尝试:

    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

  1. 或者按照其他人的建议,使用netcat:

    timeout 6 nc -vz IP Port 2>&1 | tee myFile.txt
    

http://netcat.sourceforge.net/