Дублирование stderr в unix, в частности, ksh

#logging #duplicates #ksh #stderr

#ведение журнала #дублирует #ksh #stderr

Вопрос:

Я пишу скрипты ksh. Поскольку я не могу управлять планировщиком заданий или получать доступ к его журналам, я веду журнал:

 exec 2>>logfile  1>amp;2 
  

в начале файла и использование для регистрации:

 echo "good job"
  

Чтобы быстро проверить файлы журналов на наличие ошибок, как я могу дублировать stderr в logfile и файл ошибок?
Я представляю что-нибудь с новыми файловыми дескрипторами или tee или tty?

Спасибо.

Комментарии:

1. Итак, вы хотите, чтобы stderr заканчивался в файле журнала (вместе с stdout) и только stderr заканчивался в файле ошибок?

2. Вы все еще заинтересованы в решении?

Ответ №1:

Выполнив:

 echo "good job" | tee errorlog
  

Вы получите эхо-вывод скрипта по умолчанию (я полагаю, файл журнала), и сообщение также будет продублировано в «errorlog».

Спасибо

Ответ №2:

Каждый раз, когда вы пытаетесь повторно использовать стандартные файловые дескрипторы, такие как :

 <cmd> 1>err 2>>err 1>out
  

Это переписывает определение первого определения.То есть 1 теперь указывает только на out, а 2 на err. Лучше всего было бы использовать два отдельных файла (например, err и out) и помечать выходные данные временными метками и самостоятельно сортировать их, чтобы получить комбинированный результат.