Я точно не знаю, что такое syslog -ng, но я предполагаю, что он также использует эвристический разбор устаревших сообщений syslog, точно так же, как rsyslog (с другой эвристикой, я думаю ).
Следует отметить, что показанный формат сообщения является странным. RFC3164 описывает то, что обычно можно увидеть на проводе, а второй формат здесь очень далек от того, что там описано. Если возможно, лучшим решением будет попросить отправителя исправить формат, чтобы он больше соответствовал стандартам.
@choroba дал хороший ответ, но не объяснил. Вот почему.
echo "Hello" 11>txt 11<&1
11>txt
открыть файл txt как fd/x перенаправить fd/11 в fd/x (скопировать номер из fd/x в fd/11)11<&1
перенаправить fd/11 в fd/1 (скопировать номер из fd/1 в fd/11 ). теперь fd/11 эквивалентно fd/1 (терминал ). fd/x указывает на файл (, но мы не знаем x ).
echo "Hello" 11>txt 1>&11
11>txt
открыть файл txt как fd/x перенаправить fd/11 в fd/x (скопировать номер из fd/x в fd/11)1>&11
перенаправить с 1 на 11 (скопировать номер из fd/11 в fd/1 ). Теперь fd/1, fd/11 и fd/x указывают на файл.