Tee вызывает проблемы с форматированием в консоли при запуске команд lxc-attach в сеансе

Tee вызывает проблемы с форматированием в консоли при запуске команд lxc-attach в сеансе

Я использую tee для захвата вывода скрипта установки в файл обычным способом. Все в порядке, за исключением случаев, когда команды lxc-attach выполняются в контейнере LXC Linux. Например (см. прикрепленный снимок экрана) на правом экране показан вывод консоли при использовании tee команд "lxc-attach -n container -- yum -y install", а на левом экране показан "tail -f log" журнала tee. Как можно видеть, журнал tee получает правильное форматирование, но при использовании tee вывод консоли команд, выполняемых через lxc-attach, получает дополнительные переносы строк или табуляции и т. д. Есть ли способ использовать tee или эквивалент tee, чтобы и журнал tee, и журнал консоли были отформатированы правильно? см. скриншот

решение1

Вся логируемая активность, которую мне нужно захватить, это команды sudo. Если это кому-то поможет, вот альтернативное решение, которое я нашелздесьиздесьи теперь я использую (я написал код ниже сам, основываясь на том, что я узнал об этой функции ведения журнала для sudo). Он очень прост в использовании и обеспечивает очень подробное ведение журнала. Это удивительное решение, очень им доволен, а с sudoreplay вы фактически получаете "сувенирные домашние видео" ваших установок, которыми вы можете поделиться со своими внуками на Рождество...

А когда сеанс установки завершится, вы можете при желании просто удалить файл в /etc/sudoers.d.

Я должен добавить, что этот метод не имеет НИКАКИХ проблем, которые были у tee при регистрации выходных данных команд внутри контейнеров LXC, таких как «lxc-attach» и т. д. — конечно, их не будет.

Наслаждаться!

if [ ! -d "$DistDir"/installs/logs ]
then
    sudo mkdir -p "$DistDir"/installs/logs
fi

if [ -f "$DistDir"/installs/logs/$USER.log ]
then
    sudo mv "$DistDir"/installs/logs/$USER.log "$DistDir"/installs/logs/$USER.log.$LOGEXT
fi

if [ ! -d /var/log/sudo-io ]
then
    sudo mkdir -m 750 /var/log/sudo-io
fi

if [ ! -f /etc/sudoers.d/orabuntu-lxc ]
then
    sudo sh -c "echo 'Defaults      logfile=\"/home/$USER/Downloads/orabuntu-lxc-master/installs/logs/$USER.log\"'  >> /etc/sudoers.d/orabuntu-lxc"
    sudo sh -c "echo 'Defaults      log_input,log_output'                               >> /etc/sudoers.d/orabuntu-lxc"
    sudo sh -c "echo 'Defaults      iolog_dir=/var/log/sudo-io/%{user}'                     >> /etc/sudoers.d/orabuntu-lxc"
    sudo chmod 0440 /etc/sudoers.d/orabuntu-lxc
fi

Связанный контент