繁体   English   中英

带有“ scp”的Elixir —权限被拒绝并且连接丢失

[英]Elixir with “scp” — permission denied and connection lost

我正在尝试将文件从远程服务器B复制到远程服务器A。我的Elixir应用程序在服务器A上。我正在这样做:

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}

在第一种情况下,我只收到“权限被拒绝”。

在第二种情况下,我确实收到了一个文件,但是为什么它看起来好像失败了?

我的目标首先工作,因为我希望将文件直接下载到“ / 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暗示“错误”不是吗? 更不用说“失去联系”了。

使用普通的旧ssh登录到serverB并执行:

sudo chown -R my_user /opt/folder1/

或(如果并且只有您完全了解后果):

sudo chmod a+xw /opt/folder1/

从远程注销。 现在您应该能够成功执行System.cmd/3

通常, scp命令的格式为:

scp SOURCE_FILE TARGET_USER@TARGET_HOST:TARGET_DIR

因此,您最好执行以下操作:

System.cmd("scp", ["my_local_file", "my_user@bb.bb.bb.bb:/opt/folder1/"])

这样,您应该收到System.cmd/3 {"", 0}响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM