Я пытаюсь дублировать входящий канал на другой порт, сохраняя при этом входящие данные.Входящий фид - это несколько пользовательских данных, разделенных запятыми.Я пытаюсь добиться этого с помощью 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 полное содержимое файла сбрасывается, в то время как я предпочел бы иметь обновления для файла, который будет отправлен соединяющейся стороне.
Возможно, этого даже можно достичь в однострочникес соц.Я ищу несколько советов о том, какой вариант смотреть или как этого добиться.