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
)