我可以通过脚本中的以下命令使用 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
我可以确认压缩文件已成功传输。但是,当我尝试通过 SFTP 解压缩它时,出现错误。我正在使用以下命令:
echo "unzip $zipfilename" | sshpass -p $PSWRD sftp [email protected] >> "$logfile"
错误如下:
sftp> unzip Order_20190830221440.zip
Invalid command.
我已经尝试过这两种zip
方法tar
。
知道可能是什么问题吗?
答案1
您无法使用 SFTP 在远程服务器上解压缩文件。那是不可能的。
如果您具有服务器的 shell 访问权限,则可以使用 shell 解压缩文件:
sshpass -p $PSWRD ssh [email protected] unzip $zipfilename
由于您似乎没有 shell 访问权限,因此除非您有其他访问权限(例如某些基于 Web 的控制面板),否则您将无法在服务器上解压缩该文件。