스크립트에서 다음 명령을 사용하여 SFTP를 사용하여 파일을 압축하고 전송할 수 있습니다.
zipfilename="Order_$(date +"%Y%m%d%H%M%S").zip"
echo "Start Execution" $(date +"%Y%m%d%H%M%S") >> "$logfile"
echo "Zipping Files" >> "$logfile"
zip $zipfilename order*.xml
echo "Zipping Success" >> "$logfile"
echo "put $zipfilename In" | sshpass -p $PSWRD sftp [email protected] >> "$logfile"
결과는 다음과 같습니다.
sftp> put Order_20190830221440.zip In
Uploading Order_20190830221440.zip to /In/Order_20190830221440.zip
zip 파일이 성공적으로 전송된 것을 확인할 수 있습니다. 그런데 SFTP를 통해 압축을 풀려고 하면 오류가 발생합니다. 다음 명령을 사용하고 있습니다.
echo "unzip $zipfilename" | sshpass -p $PSWRD sftp [email protected] >> "$logfile"
오류는 다음과 같습니다.
sftp> unzip Order_20190830221440.zip
Invalid command.
나는 두 가지 zip
방법을 모두 시도했습니다 tar
.
문제가 무엇인지 아시나요?
답변1
SFTP를 사용하여 원격 서버의 파일 압축을 풀 수 없습니다. 그것은 불가능합니다.
서버에 대한 셸 액세스 권한이 있는 경우 셸을 사용하여 파일의 압축을 풀 수 있습니다.
sshpass -p $PSWRD ssh [email protected] unzip $zipfilename
쉘 액세스 권한이 없는 것으로 나타나므로 다른 액세스 권한(예: 일부 웹 기반 제어판)이 없으면 서버에서 파일의 압축을 풀 수 없습니다.