我正在尝试将传入的提要复制到另一个端口,同时保存传入的数据。传入的提要是一些自定义纯文本逗号分隔的数据。我正在尝试使用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的单线实现。我正在寻找一些提示,以了解要选择哪种选项或如何实现这一目标。