2016-12-27 13 views
0

リモートサーバーBからリモートサーバーにファイルをコピーしようとしていますA.私のエリクシールアプリケーションはサーバーAにあります。「scp」のエリクシ - 許可が拒否され、接続が失われました

a1 = System.cmd("scp", ["[serverB.....]", "/opt/folder1/"]) 
# => Permission denied 
# {"", 1} 



a2 = System.cmd("scp", ["serverB.....]", "/home/my_user"]) 
# => Connection to serverB closed by remote host. 
# lost connection 
# {"", 1} 

第1のケースでは、アクセス許可が拒否されました。

2番目のケースでは、ファイルを受信しましたが、それは良いですが、なぜ失敗したように見えますか?

私の目標は、私は「は/ opt /のfolder1 /」に直接ダウンロードするファイルたいので最初が仕事を得ることです。好ましくは。

どうすればいいですか? scp経由で可能ですか?それとも、私のホームディレクトリに最初にダウンロードすべきですか?

2番目のケースでは何が問題なのですか。何が問題なのですか?

また、許可の問題を回避するために、代わりにrsyncを使用する必要がありますか?

更新:

私は "は/ opt /のfolder1 /"

sudo chmod 775 

フォルダへのアクセス権を与えてくれたが、エラーは消えていません。ファイルがダウンロードされる -

アップデート2私は、権限の作品の777それの種類を与えてくれました。しかし、返品の結果はまだこれです:

Connection to bb.bb.bb.bb closed by remote host. 
lost connection 
       {"", 1} 

なぜですか? 1は「エラー」を意味しますか? "失われた接続"は許してください。

+1

シェルプロンプトから同じユーザで同じコマンドを実行しようとするとどうなりますか?これは、 'my_user'が'/opt/folder1/'に書き込む許可を持っていないという問題のようです。@OnorioCatenacci、same - permis。 –

+0

否定されたしかし、それをどのように治すか? – Jodooomi

+0

あなたはボックスの管理者ですか?もしそうなら、 'my_user'パーミッションを与える方法を理解する必要があります。そうでない場合は、管理者にお手伝いを依頼してください。いずれにせよ、これは本当にエリクシールの質問ではありません。Linuxでのscpとパーミッションに関する質問です。 –

答えて

2

昔ながらの良いsshserverBにログインし、実行します。

sudo chown -R my_user /opt/folder1/ 

か(をあなたは完璧な結果を理解している場合のみと):

sudo chmod a+xw /opt/folder1/ 

ログアウトリモートから。今すぐSystem.cmd/3を正常に実行できるはずです。一般的に

scpコマンドの形式は次のようになります。

scp SOURCE_FILE [email protected]_HOST:TARGET_DIR 

ですから、おそらくより良い実行したい:

System.cmd("scp", ["my_local_file", "[email protected]:/opt/folder1/"]) 

をあなたはSystem.cmd/3から{"", 0}応答を受けるべきその方法。

+0

私の更新版を見てください – Jodooomi

+0

更新をご覧ください – mudasobwa

+0

アップロードしないでファイルをダウンロードする必要があります – Jodooomi

関連する問題