Linux 防止socat窃取标准数据

Linux 防止socat窃取标准数据,linux,bash,stdin,telnet,socat,Linux,Bash,Stdin,Telnet,Socat,我使用socat快速抓取telnet横幅,如下所示: for ip in $list do socat -T 1 - tcp:$ip:23 & done 它在指定的IP地址列表中循环,并为每个IP地址调用socat,将端口23上的TCP套接字链接到stdin(-),并在一秒钟后断开连接,同时在后台运行。问题是所有后台进程都使用相同的stdin,因此它们都将挂起。我尝试了readline选项,以及使用抑制stdin必须有更好的方法才能做到这一点,但到目前为止我还没有找到 echo

我使用
socat
快速抓取telnet横幅,如下所示:

for ip in $list
do
    socat -T 1 - tcp:$ip:23 &
done

它在指定的IP地址列表中循环,并为每个IP地址调用
socat
,将端口23上的
TCP套接字链接到
stdin
(-),并在一秒钟后断开连接,同时在后台运行。问题是所有后台进程都使用相同的
stdin
,因此它们都将挂起。我尝试了
readline
选项,以及使用
抑制
stdin
必须有更好的方法才能做到这一点,但到目前为止我还没有找到

echo-n |的问题是,当echo完成时,一个sigpipe将被发送到socat

所以为了避开这件事,我做了

虽然真实;睡觉10分钟;完成| socat-T1-tcp:$ip:23


这给了一个管道并且没有结束。

必须有更好的方法来做到这一点,但到目前为止我还没有找到它

echo-n |的问题是,当echo完成时,一个sigpipe将被发送到socat

所以为了避开这件事,我做了

虽然真实;睡觉10分钟;完成| socat-T1-tcp:$ip:23


这就产生了一个管道,并没有结束。

我真的不知道你想要实现什么,但是如果你用一个毫无作用的流程替换来替换
-
,会有帮助吗?这:
socat-t1您在
&
之前指定的
,对吗?
socat
必须允许在一秒钟后超时。如果
echo-n |
我真的不知道您想要实现什么,但是如果您将
-
替换为一个不起任何作用的进程替换,这会有帮助吗?这:
socat-t1您在
&
之前指定的
,对吗?
socat
必须允许在一秒钟后超时。如果
echo-n |