Tee causa problemas de formatação no console ao executar comandos lxc-attach na sessão

Tee causa problemas de formatação no console ao executar comandos lxc-attach na sessão

Eu uso tee para capturar a saída de um script de instalação em um arquivo da maneira usual. Tudo está bem, exceto quando há comandos lxc-attach em execução em um contêiner LXC Linux. Por exemplo (veja a captura de tela em anexo) na tela direita está a saída do console ao usar tee dos comandos "lxc-attach -n container -- yum -y install" e na tela esquerda está o "tail -f log" do tee'd log. Como pode ver, o tee log obtém a formatação correta, mas ao usar tee a saída do console dos comandos executados via lxc-attach obtém quebras de linha extras ou guias etc. Qualquer maneira de usar tee ou um tee equivalente para que tanto o tee log quanto o log do console estão formatados corretamente? veja a captura de tela

Responder1

Toda a atividade registrada que preciso capturar são comandos sudo. Caso ajude alguém, aqui está a solução alternativa que encontreiaquieaquie agora estou usando (eu mesmo escrevi o código abaixo com base no que aprendi sobre esse recurso de registro para sudo). É muito fácil de usar e fornece registros altamente detalhados. É uma solução incrível, muito feliz com isso e com o sudoreplay você realmente recebe "vídeos caseiros de lembrança" de suas instalações que você pode compartilhar com seus netos na época do Natal...

E, quando a sessão de instalação terminar, você pode opcionalmente desinstalar o arquivo em /etc/sudoers.d se preferir.

Devo acrescentar que este método não tem NENHUM dos problemas que tee teve ao registrar a saída de comandos dentro dos contêineres LXC, como "lxc-attach" etc - é claro que não teria.

Aproveitar!

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

informação relacionada