Я использую следующее, чтобы перенаправить вывод из моего скрипта и в терминал, и в файл журнала, добавляя дату к каждой строке, которая идет в файл журнала:
NPIPE=/tmp/$$_$RANDOM.tmp
mknod $NPIPE p
tee <$NPIPE /dev/tty | ( while read line; do echo "$(date): ${line}"; done ) >> $LOG_FILE &
exec 1>&-
exec 1>$NPIPE
exec 2>&-
exec 2>$NPIPE
Теперь в этом же сценарии я загружаю файл журнала на сервер. Файл журнала на локальном устройстве (встроенный) выглядит завершенным, но файл журнала на сервере всегда является частичным.
У меня возникает ощущение, что канал все еще очищается в блоках и все еще содержит содержимое, когда я отправляю журнал, возможно, мне не хватает какой-то команды очистки, но я не могу найти ничего подобного.
Любой совет?