SFTPエラーを追跡する方法

SFTPエラーを追跡する方法

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
)

おすすめ記事