1

Я пишу установочный скрипт, и мне нужно запустить его sudo поскольку я тестирую его на экземплярах AWS RedHat, поэтому не могу напрямую перейти от имени root . Я хочу записать журнал в файл, а также на экран. Нет ничего проще,

Я могу либо пойти в старую школу >> /tmp/Solr_Install.log 2>&1 и запустить хвостовой процесс в фоновом режиме: tail -f installer.log & Это решение имеет тенденцию дублировать или утроить вывод на экране, поэтому я выбрал Тройное решение.

Просто используйте силу силы и 2>&1 | tee -a /tmp/Solr_Install.log В этом решении я теряю права sudo, и сценарий завершается ошибкой.

Вопросы: почему хвост показывает одну и ту же линию 2-3 раза? (Это как-то связано с тем, что tail -f отображает последние 10 строк?)

  • Можно ли это как-то исправить?

  • Почему я теряю свое sudo, когда я чаю?

  • Можно ли этого избежать?

  • Есть ли другой способ выбросить материалы журнала в файл и на экран одновременно?

1 ответ1

1

sudo не является привилегией, специфичной для сессии. sudo - это команда, которая запускает другие команды с повышенными привилегиями. Так что просто запустите свою tee с помощью sudo:

2>&1 | sudo tee -a /tmp/Solr_Install.log W

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