SFTP接続を介して解凍または解放できない

SFTP接続を介して解凍または解放できない

スクリプトでは、次のコマンドを使用して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

シェルのアクセス権がないように見えるため、他のアクセス権(たとえば、一部のWebベースのコントロールパネル)がないと、サーバーはファイルを解凍できません。

関連情報