在會話中執行 lxc-attach 指令時,Tee 會導致控制台出現格式問題

在會話中執行 lxc-attach 指令時,Tee 會導致控制台出現格式問題

我使用 tee 以通常的方式將安裝腳本的輸出捕獲到文件中。一切都很好,除了在 LXC Linux 容器中執行 lxc-attach 命令時。例如(請參閱隨附的螢幕截圖),右側螢幕上是使用「lxc-attach -n container -- yum -y install」命令的tee 時的控制台輸出,左側螢幕上是「tail -f log ”發球檯日誌。可以看到,tee 日誌得到了正確的格式,但是當使用tee 時,透過lxc-attach 執行的命令的控制台輸出會得到額外的換行符或製表符等。方法都可以讓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

相關內容