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

Linux script to write data from telnet message into a file while a period

我正在连接到 telnet 侦听器。 Telnet 服务器每秒发送一些数据。我想在 X 秒内读取消息并将其写入文件(例如我们将花费 6 秒)。

注意:示例中的 IP 地址已更改为 'IP'。 'Port'.

相同

我已经尝试了一些东西:

#!/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. 在您的第一个解决方案中,您可以尝试尝试:

    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/