![Infa_shared 디렉터리에서 원격 SFTP 서버로 파일을 이동하는 쉘 스크립트](https://linux55.com/image/188824/Infa_shared%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%EC%84%9C%20%EC%9B%90%EA%B2%A9%20SFTP%20%EC%84%9C%EB%B2%84%EB%A1%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%9D%B4%EB%8F%99%ED%95%98%EB%8A%94%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8.png)
DailyRenewalsYYYYMMDD.txt
내 요구 사항은 infa unix 서버에서 data/infa_shared_SrcFiles/ABC/
원격 서버로 파일( )을 이동하는 것입니다 . 쉘 스크립트를 만들었습니다.
Informatica
다음은 내가 사용하고 명령 작업을 통해 호출하는 스크립트입니다.
Parameters to Pass
$1 - SOURCE Path
$2 - Remote Server Path
$3 - PUT Logfile
$4 - Email Subject & Body
#######################################################################################
MFT_HOST='10.XX.X.XXX'
MFT_USER='XXXXX'
MFT_PSWD='*****'
FAILURE_EMAIL='[email protected]'
SUCCESS_EMAIL='[email protected]'
cd $SCRIPT_PATH
rm -f $LOG_PATH/$3
sftp $MFT_USER@$MFT_HOST:$REMOTE_DIR_PATH <<< $'put $SOURCE_PATH' >> $LOG_PATH 2>&1
#*I have used below command as well, even this didn't worked*#
##sftp $MFT_USER:$MFT_PSWD@$MFT_HOST:$REMOTE_DIR_PATH <<< $'put $SOURCE_PATH' >> $LOG_PATH 2>&1
export RC=$?
if [[ "$RC" > 0 ]];
then
echo `date +"%m-%d-%y_%T"` >> $LOG_PATH/$3
echo "ERROR: $4 Put File to REMOTE Server Failed" >> $LOG_PATH/$3
mail -s "$4 Put File to REMOTE Server Failed" $FAILURE_EMAIL<<EOF
"$4" File is NOT present in SOURCE PATH. Check log for details.
EOF
exit -1
else
echo `date +"%m-%d-%y_%T"` >> $LOG_PATH/$3
echo "SUCCEEDED: $4 Put File to REMOTE Server Succeeded." >> $LOG_PATH/$3
mail -s "$4 Put File to REMOTE Server Successfully Completed" $SUCCESS_EMAIL<<EOF
"$4" File Successfully Transferred to REMOTE Server. Check log for details.
EOF
fi
exit 0
#############################
명령 작업에서 셸 스크립트를 통해 이 명령을 실행한 후 오류가 발생합니다.
THIS IS A PRIVATE COMPUTER SYSTEM ---
USAGE MAY BE MONITORED AND UNAUTHORIZED ACCESS
OR USE MAY RESULT IN CRIMINAL OR CIVIL PROSECUTION
Permission denied, please try again.
Received disconnect from MFT_HOST port 22:2: Too many authentication failures for MFT_USER
Authentication failed.
Couldn't read packet: Connection reset by peer
sftp
그러나 위와 동일한 명령을 편집기에서 실행하면 putty
암호를 묻는 메시지가 나타나고 암호를 입력한 후 파일을 원격 서버에 복사합니다.
노트:유틸리티가 설치되어 있지 않아 expect
사용할 수 없습니다.