我有 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
)