如何跟踪 SFTP 的错误

如何跟踪 SFTP 的错误

我有 1 个用于 SFTP 的脚本。我收到目标服务器上的权限问题错误。我想在日志文件中跟踪此错误。我如何跟踪 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
)

相关内容