Я использую тройник для записи вывода установочного скрипта в файл обычным способом. Все хорошо, за исключением случаев, когда команды lxc-attach выполняются в контейнере LXC Linux. Например (см. Прикрепленный скриншот) на правом экране вывод консоли при использовании команды «lxc-attach -n container - yum -y install», а на левом экране - «tail -f log» Tee'd войти. Как видно, журнал получает правильное форматирование, но при использовании команды вывода на консоль команд, выполняемых через lxc-attach, появляются дополнительные разрывы строк или табуляции и т.д. Любой способ использовать тройник или эквивалент тройника, чтобы и журнал тройника, и журнал консоли оба были правильно отформатированы? смотреть скриншот

1 ответ1

0

Все регистрируемые действия, которые мне нужно записать, это команды 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .