shibatch's journey

日々考えていることをつらつら書くだけです

どーーしても標準出力と標準エラー出力を teeコマンドで別々のログファイルに書き込みたいとき

sshで接続した先のスクリプトをsudoを使って実行したいことってまぁあると思うのだけれども、そのスクリプトを叩いたときの標準出力、標準エラー出力を別々のログファイルに書き込みたいとき。

この場合、普通は以下のようなリダイレクトを使いたいところだが

ssh ${remote_server_ip} bash command 1>> bash file1.log 2>>file2.log

このfile1.log / file2.logに書き込める権限がなくて書き込めない!という場合があった。この場合はteeコマンドをsudoを使ったら実現できた。

ssh ${remote_server_ip} sudo bash -c "(sudo command | sudo tee -a file1.log) 2>&1 > /dev/null | sudo tee -a file2.log"

なんだか呪文みたいなコマンドになってしまったな… 結局この方法は使わないことにした(ログファイルに書き込み権限をつけた)のだけれども、今後のために覚書として残しておく。