aryeh
@aryeh
Молод (душой) и приятен в общении :-)

tee, но не в файл, а на udp port

Я чайник в линуксе, так что извиния за сумбурную формулировку вопроса.
В шеле запускаем комманду

my_process 2>&1 | tee -a log.txt


Т.е. stdout и stderr процесса сохраняются в файл и видны на консоли.
Нужно максимально просто сделать то же самое, но вместо log.txt посылать stdout и stderr по UDP адресу вида 177.22.37.11:6800
Заранее спасибо всем ответившим по существу.
  • Вопрос задан
  • 2633 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Yur4eg
Используй netcut
my_process 2>&1 | tee | nc 177.22.37.11 6800
Ответ написан
ntkt
@ntkt
Потомственный рыцарь клавиатуры и паяльника
Я был бы чуть более осторожен — не в каждом дистрибутиве в баше доступны /dev/tcp и /dev/udp.
Можно использовать netcat (вызывается как nc, есть по умолчанию почти везде)

Соответственно,

#!/bin/sh

mkfifo dummy
cat dummy  | nc -u 177.22.37.11 6800
my_process 2>&1 | tee -a dummy
rm dummy


Ключ -u выбирает UDP, если не указывать — по умолчанию TCP.
Ответ написан
umcherrel
@umcherrel
#!/usr/bin/env bash

mkfifo dummy
cat dummy  > /dev/udp/177.22.37.11/6800 &
my_process 2>&1 | tee -a dummy
rm dummy
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы