server-2
SSHを介してリモートサーバー()で実行したいスクリプトがいくつかあり、その出力をonというログファイルserver-1
に書き込む必要があります。file.log
server-1
私はこれを試しています:sc.sh
echo 'testing'
cp $HOME/dir1/file1 $HOME/dir2
今sc.sh
SSHを介して実行します。
sshpass -p 'psswd' ssh username@server-2 "bash -s" < sc.sh | tee -a file.log
if [ $? -eq 0]; then
echo "successfully executed the script file"
.
.
.
else
echo "failed copying due to incorrect path"
fi
コマンドがtee -a file.log
スクリプトファイルのコマンドに失敗した場合でも、常に0を返します。ログファイルへの書き込み方法とコマンド終了コードに従って動作する必要があるssh
コマンドの後の条件を確認する必要がありますか?ssh
ベストアンサー1
確認は${PIPESTATUS[0]}
私にとって効果的でした...
if [ ${PIPESTATUS[0]} -eq 0 ]; then
echo "successfull"
fi
echo ${PIPESTATUS[*]}
パイプで接続されたすべてのコマンドの終了コードを印刷します。