Tee verursacht Formatprobleme an der Konsole, wenn lxc-attach-Befehle in der Sitzung ausgeführt werden

Tee verursacht Formatprobleme an der Konsole, wenn lxc-attach-Befehle in der Sitzung ausgeführt werden

Ich verwende tee, um die Ausgabe eines Installationsskripts auf die übliche Weise in einer Datei zu erfassen. Alles ist in Ordnung, außer wenn lxc-attach-Befehle in einem LXC-Linux-Container ausgeführt werden. Beispielsweise (siehe beigefügter Screenshot) wird auf dem rechten Bildschirm die Konsolenausgabe bei Verwendung von tee der Befehle „lxc-attach -n container -- yum -y install“ angezeigt und auf dem linken Bildschirm das „tail -f log“ des tee-Protokolls. Wie Sie sehen, wird das tee-Protokoll korrekt formatiert, aber bei Verwendung von tee erhält die Konsolenausgabe der über lxc-attach ausgeführten Befehle zusätzliche Zeilenumbrüche oder Tabulatoren usw. Gibt es eine Möglichkeit, tee oder ein tee-Äquivalent zu verwenden, sodass sowohl das tee-Protokoll als auch das Konsolenprotokoll korrekt formatiert sind? siehe Screenshot

Antwort1

Die gesamte protokollierte Aktivität, die ich erfassen muss, sind Sudo-Befehle. Falls es jemandem hilft, hier ist die alternative Lösung, die ich gefunden habeHierUndHierund verwende ich jetzt (ich habe den folgenden Code selbst geschrieben, basierend auf dem, was ich über diese Protokollierungsfunktion für sudo gelernt habe). Es ist sehr einfach zu verwenden und bietet eine sehr detaillierte Protokollierung. Es ist eine erstaunliche Lösung, mit der ich sehr zufrieden bin, und mit sudoreplay erhalten Sie tatsächlich „Souvenir-Heimvideos“ Ihrer Installationen, die Sie zu Weihnachten mit Ihren Enkeln teilen können …

Und wenn die Installationssitzung abgeschlossen ist, können Sie optional einfach die Datei in /etc/sudoers.d deinstallieren, wenn Sie dies bevorzugen.

Ich sollte hinzufügen, dass diese Methode KEINE der Probleme aufweist, die tee beim Protokollieren der Ausgabe von Befehlen innerhalb der LXC-Container wie „lxc-attach“ usw. hatte – das wäre natürlich nicht der Fall.

Genießen!

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

verwandte Informationen