Tee führt zu Formatproblemen an der Konsole, wenn LXC-Attach-Befehle in einer Sitzung ausgeführt werden

344
gstanden

Ich benutze tee, um die Ausgabe eines Installationsskripts wie üblich in eine Datei zu erfassen. Alles ist in Ordnung, außer wenn in einem LXC-Linux-Container Lxc-Attach-Befehle ausgeführt werden. Zum Beispiel (siehe beigefügter Screenshot) auf dem rechten Bildschirm ist die Konsolenausgabe, wenn das Tee des Befehls "lxc-attach -n container - yum -y install" verwendet wird. Auf dem linken Bildschirm befindet sich das Protokoll "tail -f" des Befehls Abschlagprotokoll. Wie zu sehen ist, erhält das Abschlagprotokoll die korrekte Formatierung, aber bei Verwendung von Abschlag erhält die Konsolenausgabe der Befehle, die über Lxc-Attach ausgeführt werden, zusätzliche Zeilenumbrüche oder Tabulatoren Konsolenprotokoll sind beide korrekt formatiert? siehe Screenshot

0

1 Antwort auf die Frage

0
gstanden

Alle protokollierten Aktivitäten, die ich erfassen muss, sind sudo-Befehle. Falls es jemandem hilft, hier ist die alternative Lösung, die ich hier und hier gefunden habe und jetzt verwende (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 bedienen und bietet eine sehr detaillierte Protokollierung. Es ist eine erstaunliche Lösung, die sehr glücklich damit ist und mit Sudoreplay erhalten Sie tatsächlich "Souvenir-Videos" von Ihnen, die Sie mit Ihren Enkelkindern in der Weihnachtszeit teilen können ...

Wenn die Installationssitzung abgeschlossen ist, können Sie optional auch die Datei in /etc/sudoers.d deinstallieren, wenn Sie dies vorziehen.

Ich sollte hinzufügen, dass diese Methode KEINE der Probleme hat, die Tee beim Protokollieren der Ausgabe von Befehlen in den LXC-Containern hatte, z. B. "lxc-attach" usw. - natürlich nicht.

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/%' >> /etc/sudoers.d/orabuntu-lxc" sudo chmod 0440 /etc/sudoers.d/orabuntu-lxc fi