Tee powoduje problemy z formatowaniem na konsoli podczas uruchamiania poleceń lxc-attach w sesji

0

Używam tee do przechwytywania danych wyjściowych skryptu instalacyjnego do pliku w zwykły sposób. Wszystko jest w porządku, poza przypadkiem, gdy w kontenerze LXC Linux są wykonywane polecenia lxc-attach. Na przykład (patrz załączony zrzut ekranu) na prawym ekranie jest wyjście konsoli, gdy używane są polecenia „lxc-attach -n container - yum -y install”, a na lewym ekranie znajduje się „tail -f log” loguj się. Jak widać, dziennik tee ma poprawne formatowanie, ale gdy używasz tee, wyjście komendy z komend wykonywanych przez lxc-attach dostaje dodatkowe podziały linii lub tabulatory itp. Dowolny sposób użycia tee lub ekwiwalentu tee, aby zarówno tee log jak i dziennik konsoli jest poprawnie sformatowany? patrz zrzut ekranu

gstanden
źródło

Odpowiedzi:

0

Wszystkie zarejestrowane działania, które muszę przechwycić, to polecenia sudo. W przypadku, gdy komuś to pomoże, oto alternatywne rozwiązanie, które znalazłem tutaj i tutaj i teraz używam (sam napisałem poniższy kod na podstawie tego, czego dowiedziałem się o tej funkcji logowania dla sudo). Jest bardzo łatwy w użyciu i zapewnia szczegółowe logowanie. Jest to niesamowite rozwiązanie, bardzo z niego zadowolone, a dzięki sudoreplay faktycznie dostajesz „pamiątkowe domowe filmy”, które instalujesz, którymi możesz dzielić się z wnukami w czasie Bożego Narodzenia ...

A kiedy sesja instalacyjna się zakończy, możesz opcjonalnie odinstalować plik w /etc/sudoers.d, jeśli wolisz.

Powinienem dodać, że ta metoda NIE MA ŻADNYCH problemów, które miały tee podczas logowania danych wyjściowych z komend wewnątrz kontenerów LXC, takich jak „lxc-attach” itp. - oczywiście, że nie.

Cieszyć się!

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
gstanden
źródło