У меня есть программа (сервер), и я ищу способ (сценарий), который будет перенаправлять (или лучше дублировать) весь свой стандартный stdout
в файл и добавлять метку времени для каждой записи.
Я провел некоторое исследование, и самое дальнее, что я смог получить, это благодаря тому, как добавить метку времени к перенаправлению STDERR. Он перенаправляет стандартный stdout
но добавленная временная метка соответствует времени завершения сценария:
#!/bin/bash
./server | ./predate.sh > log.txt
код predate.sh
:
#!/bin/bash
while read line ; do
echo "$(date): ${line}"
done
Кажется, что выход сервера сбрасывается после выхода из программы. (Без перенаправления он работает нормально). Кроме того, если я попытаюсь использовать predate.sh
на данном примере в упомянутой теме, он работает отлично. Я знаю, что было бы легко добавить метку времени в основную программу, но я бы предпочел не редактировать ее код.