リモートSSHの出力をローカルに取得する

リモートSSHの出力をローカルに取得する

lpリモートホストから失敗したコマンドの出力は、次のようにローカルスクリプトにインポートできます。

until ssh -q root@remotehost 'lp -d Brother_HL_L2350DW_series /root/moht/Printed/`basename "$FILE"`' 2>&1 | tee /home/printererror.log
do
echo "Issue is: `cat /home/printererror.log`"

sleep 230

done

問題は、untilコマンドが失敗しても繰り返されないことですlp

untilコードを変更して以下のように削除する2>&1 | tee /home/printererror.logと、正常に機能し、失敗したlpコマンドが繰り返され始めます。ただし、ご覧のとおり、削除後はエラーメッセージは表示されません。tee

until ssh -q root@remotehost 'lp -d Brother_HL_L2350DW_series /root/moht/Printed/`basename "$FILE"`'

関連する失敗メッセージをローカルに記録しながら、until失敗したコマンドを繰り返したいと思います。lpecho

答え1

検討until中の終了状態tee

コードを見れば、なぜ必要なのかは明確ではないので、tee削除することをお勧めします。

until ssh -q root@remotehost 'lp …' >/home/printererror.log 2>&1
do
    : …
done

関連情報