SFTP用のスクリプトが1つあります。ターゲットサーバーで権限の問題エラーが発生します。ログファイルでこのエラーを追跡したいと思います。 SFTPエラーをどのように追跡しますか?以下は私のコードです。
sftp $TragetUsr@$TargetserIP <<-FIL >> $LOGPATH/$Logfile
cd $FTPDir
lcd $FILEPATH
put $ZipFilename
bye
FIL
SftpStatus=$?
echo " SftpStatus = $SftpStatus " >> $LOGPATH/$Logfile
プロンプトでこのスクリプトを実行しようとすると、権限エラーが表示されます。変数にsftpの状態をキャプチャしましたが、常に0を返します。
エラーが発生します。ターゲットサーバーのIPに接続しました。リモートオープン(「ターゲットサーバーパス」):権限が拒否されました。
エラーメッセージをキャプチャするのに役立ちます。
ベストアンサー1
stderrをstdoutが指すファイルにリダイレクトし、stdoutをリダイレクトします。これにより、エラーメッセージをキャプチャできます。
sftpError=$(
sftp $TragetUsr@$TargetserIP <<-FIL 2>&1 >> $LOGPATH/$Logfile
cd $FTPDir
lcd $FILEPATH
put $ZipFilename
bye
FIL
)