将传入的提要复制到其他端口并使用socat同时存储

时间:2019-04-10 15:26:52

标签: linux networking socat

我正在尝试将传入的提要复制到另一个端口,同时保存传入的数据。传入的提要是一些自定义纯文本逗号分隔的数据。我正在尝试使用socat来实现这一点,但是我对该选项有些不知所措,无法完全实现我想要的。

因此,传入的提要被发送到机器上的一个端口,我想将该端口复制到另一个端口以进行多个侦听器(连接),同时将传入的数据记录到文本文件中。

我目前有以下脚本:

#/bin/bash

if [ "$#" -ne 3 ]; then
    echo "Illegal number of parameters"
    exit
fi

PORT=$1
LOGFILE=$2
FORWARD_PORT=$3

touch ${LOGFILE}
/usr/bin/socat -u TCP4-LISTEN:${PORT},reuseaddr,fork OPEN:${LOGFILE},creat,append &
/usr/bin/socat -u FILE:${LOGFILE},ignoreeof TCP4-LISTEN:${FORWARD_PORT},reuseaddr,fork &

此设置的问题是,当多个人连接到FORWARD_PORT时,只有最后一个要连接的人会得到更新。此外,在第一次连接FORWARD_PORT时,文件的全部内容都将转储,而我希望将文件的更新发送给连接方。

这可能甚至可以通过socat的单线实现。我正在寻找一些提示,以了解要选择哪种选项或如何实现这一目标。

0 个答案:

没有答案