Для некоторых облачных машин, которые я запускаю, я пытаюсь войти в определенный файл, системный журнал и терминал / консоль.
В верхней части сценариев настройки моего компьютера / cloud-init у меня есть следующее:
#!/bin/bash
exec &> >(tee "/tmp/box-setup.log" | logger -t box-setup)
apt-get install -y some-package
Это прекрасно работает при отправке вывода в файл и системный журнал, но не направляет вывод на терминал.
Вообще говоря, отсутствие вывода на терминал не является большой проблемой, за исключением случаев, когда я отлаживаю с удаленной консоли. Когда это происходит, я полностью ослеп, потому что консоль пуста, когда выполняется скрипт bash.
Существует ли простой способ с помощью bashперенаправления или чего-либо еще, чтобы передать весь вывод (стандартный вывод вместе со стандартной ошибкой) в файл, системный журнал и терминал одновременно?
Я использую Ubuntu 16.04.
exec &> >(tee /tmp/box-setup.log >(logger -t box-setup))