私が起動している一部のクラウドマシンでは、特定のファイル、syslog、およびターミナル/コンソールにログを記録しようとしています。
マシンのsetup / cloud-initスクリプトの一番上に、次のものがあります。
#!/bin/bash
exec &> >(tee "/tmp/box-setup.log" | logger -t box-setup)
apt-get install -y some-package
これは、出力をファイルとsyslogに送信するのに最適ですが、出力をターミナルにパイプしません。
一般に、リモートコンソールからデバッグしている場合を除いて、ターミナル出力がないことは大きな問題ではありません。そうなると、bashスクリプトが実行されるときにコンソールが空白になるので、私は完全に盲目です。
bashリダイレクトなどを使用して、すべての出力(標準出力と標準エラーを含む)をファイル、syslog、および端末に同時にパイプする簡単な方法はありますか?
Ubuntu 16.04を実行しています。
exec &> >(tee /tmp/box-setup.log >(logger -t box-setup))