ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
1 апреля
1508824 Топик полностью
Cкpипaчпророк (28.03.2025 21:03 - 21:37, просмотров: 125) ответил POV на Хочу логи кидать по UDP. С нескольких девайсов. Есть ли софтина, что это примет и по окошкам для каждого источника строки раскидает? Самому писать - полдня тратить.. да и потом регулярные доработки. А может кто уже прошел этот путь.
cat /dev/ttyS1|grep src1 ? Смотри чё Дипсик знает. 

Привет! В Linux можно читать из `nc` (netcat) одновременно в нескольких терминалах с помощью нескольких подходов. Вот основные способы:

### 1. **Использование `tmux` или `screen` для мультиплексирования терминалов**

- Можно запустить `nc` в одном сеансе `tmux`/`screen` и разделить терминал на несколько панелей, каждая из которых будет показывать один и тот же вывод.

- Пример с `tmux`:

```bash

tmux new-session -s nc_session 'nc -l -p 1234' # Запуск сервера

```

Затем разделить терминал (например, `Ctrl+B %` для вертикального разделения), и в каждой панели выполнить:

```bash

tmux attach-session -t nc_session

```

### 2. **Использование `tee` для записи в несколько файлов/процессов**

- Можно перенаправить вывод `nc` в `tee`, который будет дублировать данные в несколько файлов или FIFO-каналов.

- Пример:

```bash

mkfifo /tmp/fifo1 /tmp/fifo2

nc -l -p 1234 | tee /tmp/fifo1 /tmp/fifo2 > /dev/null &

```

Затем в разных терминалах читать из FIFO:

```bash

# Терминал 1:

cat /tmp/fifo1

# Терминал 2:

cat /tmp/fifo2

```

### 3. **Использование `socat` (более мощная альтернатива `nc`)**

- `socat` поддерживает мультиплексирование вывода:

```bash

socat -u TCP-LISTEN:1234,fork,reuseaddr "SYSTEM:'tee >(cat >&2) | cat'"

```

- В этом случае вывод будет дублироваться в несколько мест.

### 4. **Использование `multitail` или подобных утилит**

- Можно записывать вывод `nc` в файл, а затем читать его в нескольких терминалах с помощью `tail -f` или `multitail`:

```bash

nc -l -p 1234 > /tmp/nc_output &

```

Затем в разных терминалах:

```bash

tail -f /tmp/nc_output

```

### 5. **Использование `netcat` + `xclip` (если нужно копирование в буфер обмена)**

- Если нужно просто видеть данные в разных терминалах, можно перенаправить вывод в `xclip`:

```bash

nc -l -p 1234 | xclip -i -selection clipboard

```

Затем вставлять из буфера вручную (`Ctrl+Shift+V`).

### Вывод

Лучший способ зависит от задачи:

- Для простого дублирования вывода подойдёт `tee` + FIFO.

- Для интерактивного просмотра в нескольких терминалах — `tmux` или `screen`.

- Для записи в файл и чтения — `tail -f`.

Если нужно что-то более сложное (например, интерактивное взаимодействие), лучше использовать специализированные инструменты вроде `socat`.

... но не любой ценой.