スクリプトを介してsftp接続でコマンドを実行する

スクリプトを介してsftp接続でコマンドを実行する

これは非常に基本的な質問です。私は初めてbashに触れ、それを行う方法を知りません。残念ながら、インターネット検索ではどこでも私を見つけることができませんでした。

私の目標は、sftpを使用してサーバーに接続し、ファイルをアップロードしてから切断することです。

次のスクリプトがあります。

UpdateJar.sh

#!/bin/bash

sftp -oPort=23 [email protected]:/home/kalenpw/TestWorld/plugins
#Change directory on server
#cd /home/kalenpw/TestWorld/plugins

#Upload file
put /home/kalenpw/.m2/repository/com/Khalidor/TestPlugin/0.0.1-SNAPSHOT/TestPlugin-0.0.1-SNAPSHOT.jar

exit

問題は、このスクリプトがSFTP接続を確立しても何もしないことです。接続に手動で終了を入力すると、putコマンドを実行しようとしますが、sftpセッションが閉じられるため、put:command not findとのみ表示されます。

どうすれば正しく動作させることができますか?

ありがとう

ベストアンサー1

このドキュメントのコマンドを渡すようにスクリプトを変更できます。たとえば、次のようになります。

#!/bin/bash

sftp -oPort=23 [email protected]:/home/kalenpw/TestWorld/plugins <<EOF
put /home/kalenpw/.m2/repository/com/Khalidor/TestPlugin/0.0.1-SNAPSHOT/TestPlugin-0.0.1-SNAPSHOT.jar   
exit
EOF

これ<<後に名前(EOF)を付けると、その名前(単独)が行の先頭に見つかるまで次の行を渡すようにスクリプトに指示します。

おすすめ記事