Я использую тройник для записи вывода установочного скрипта в файл обычным способом. Все хорошо, за исключением случаев, когда команды lxc-attach выполняются в контейнере LXC Linux. Например (см. Прикрепленный скриншот) на правом экране вывод консоли при использовании команды «lxc-attach -n container - yum -y install», а на левом экране - «tail -f log» Tee'd войти. Как видно, журнал получает правильное форматирование, но при использовании команды вывода на консоль команд, выполняемых через lxc-attach, появляются дополнительные разрывы строк или табуляции и т.д. Любой способ использовать тройник или эквивалент тройника, чтобы и журнал тройника, и журнал консоли оба были правильно отформатированы? смотреть скриншот
1 ответ
Все регистрируемые действия, которые мне нужно записать, это команды sudo. В случае, если это кому-нибудь поможет, вот альтернативное решение, которое я нашел здесь и здесь и сейчас использую (я сам написал нижеприведенный код, основываясь на том, что я узнал об этой функции ведения журнала для sudo). Он очень прост в использовании и обеспечивает очень подробную регистрацию. Это удивительное решение, которое очень порадовало его, и с помощью sudoreplay вы фактически получаете "домашние сувенирные видео" о ваших инсталляциях, которыми вы можете поделиться со своими внуками на Рождество ...
И, когда сеанс установки закончится, вы можете просто удалить файл в /etc/sudoers.d, если хотите.
Я должен добавить, что в этом методе нет НИКАКИХ проблем, которые возникли при регистрации выходных данных команд внутри контейнеров 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