使用 scp 文件复制到 Amazon EC2 时停止传输 16K
Posted
技术标签:
【中文标题】使用 scp 文件复制到 Amazon EC2 时停止传输 16K【英文标题】:While copying to Amazon EC2 with scp file stops transfer on 16K 【发布时间】:2018-11-25 08:53:42 【问题描述】:我正在尝试使用 scp 使用命令将文件复制到 Amazon EC2 AMI 实例
scp -i ~/.ssh/azhdanov_aws.txt udt-0.9.jar ec2-user@ec2-18-191-152-48.us-east-2.compute.amazonaws.com:~
但我收到了:
0% 0 0.0KB/s --:-- ETApacket_write_wait: Connection to 18.191.152.48 port 22: Broken pipe
我可以用 ssh 登录
ssh -i ~/.ssh/azhdanov_aws.txt ec2-user@18.191.152.48
并看到卷上正好有 16K 字节的文件
drwx------ 3 ec2-user ec2-user 4096 Jun 15 13:15 .
drwxr-xr-x 3 root root 4096 Apr 6 10:59 ..
-rw------- 1 ec2-user ec2-user 2102 Jun 15 13:12 .bash_history
-rw-r--r-- 1 ec2-user ec2-user 18 Aug 30 2017 .bash_logout
-rw-r--r-- 1 ec2-user ec2-user 193 Aug 30 2017 .bash_profile
-rw-r--r-- 1 ec2-user ec2-user 124 Aug 30 2017 .bashrc
drwx------ 2 ec2-user ec2-user 4096 Apr 6 10:59 .ssh
-rw-r--r-- 1 ec2-user ec2-user 16384 Jun 15 13:15 udt-0.9.jar
然后我通过在 vm 上复制文件来检查我没有音量限制:
drwx------ 3 ec2-user ec2-user 4096 Jun 15 13:27 .
drwxr-xr-x 3 root root 4096 Apr 6 10:59 ..
-rw------- 1 ec2-user ec2-user 2102 Jun 15 13:12 .bash_history
-rw-r--r-- 1 ec2-user ec2-user 18 Aug 30 2017 .bash_logout
-rw-r--r-- 1 ec2-user ec2-user 193 Aug 30 2017 .bash_profile
-rw-r--r-- 1 ec2-user ec2-user 124 Aug 30 2017 .bashrc
drwx------ 2 ec2-user ec2-user 4096 Apr 6 10:59 .ssh
-rw-r--r-- 1 ec2-user ec2-user 16384 Jun 15 13:27 copy_udt-0.9.jar
-rw-r--r-- 1 ec2-user ec2-user 16384 Jun 15 13:15 udt-0.9.jar
而且我似乎没有超过 EC2 限制:
My Amazon services usage
调试信息没有给我答案,为什么我不能复制超过 16K 的文件:
debug3: send packet: type 98
debug3: Ignored env SECURITYSESSIONID
debug3: Ignored env _
debug3: Ignored env __CF_USER_TEXT_ENCODING
debug1: Sending command: scp -v -t ~
debug2: channel 0: request exec confirm 1
debug3: send packet: type 98
debug2: channel_input_open_confirmation: channel 0: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel 0: rcvd adjust 2097152
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 0
debug2: exec request accepted on channel 0
Sending file modes: C0644 11610816 udt-0.9.jar
debug2: channel 0: rcvd ext data 33
Sink: C0644 11610816 udt-0.9.jar
debug2: channel 0: written 33 to efd 8
udt-0.9.jar
0% 0 0.0KB/s --:-- ETAdebug3: send packet: type 1
packet_write_wait: Connection to 18.191.152.48 port 22: Broken pipe
lost connection
【问题讨论】:
你试过 rsync 了吗? rsync.samba.org/examples.html @strongjz,这次根本没有数据传输:rsync -avL --progress -e "ssh -i ~/.ssh/azhdanov_aws.txt" ~/temas/git/protocols-benchmark /udt/build/libs/udt-0.9.jar ec2-user@13.59.11.218:~ 构建文件列表 ... 1 个要考虑的文件 udt-0.9.jar packet_write_wait: 连接到 13.59.11.218 端口 22: 损坏的管道 rsync: writefd_unbuffered 未能写入 32768 字节 [sender]:Broken pipe (32) rsync:连接意外关闭(到目前为止已收到 174 个字节)[sender] rsync 错误:无法解释的错误(代码 255)at/BuildRoot/Library/Caches/com.apple .xbs/Sources/rsync/rsync-52/rsync/io.c 我会在备份时检查两台服务器上的 /var/log/secure 和 /var/log/messages。两台服务器之间有防火墙吗? 【参考方案1】:问题现在已经消失,我没有设法找到根本原因。希望以后不会再出现。
【讨论】:
以上是关于使用 scp 文件复制到 Amazon EC2 时停止传输 16K的主要内容,如果未能解决你的问题,请参考以下文章
使用 scp 将文件传输到 amazon ec2 实例总是给我拒绝权限(公钥,gssapi-with-mic)
WinSCP 在登录到“root”后连接到 Amazon AMI EC2 实例更改用户