我可以ssh到我的ubuntu盒子就好了,我已经把我的应用程序的一个版本scp
到服务器上了,但是当我运行scp MaryBaked.tar.gz root@marybakedpdx.com:/home/marybakedpdx
个
或者甚至scp MaryBaked.tar.gz root@marybakedpdx.com:~
scp的进度跳到81%,然后进程显示stalled
,我得到
写入失败:管道断裂,失去连接
编辑
请输入您的用户名和密码:/home
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/vda1 ext4 30830588 2906508 26334944 10% /
none tmpfs 4 0 4 0% /sys/fs/cgroup
udev devtmpfs 498088 4 498084 1% /dev
tmpfs tmpfs 101788 356 101432 1% /run
none tmpfs 5120 0 5120 0% /run/lock
none tmpfs 508940 0 508940 0% /run/shm
none tmpfs 102400 0 102400 0% /run/user
5条答案
按热度按时间2j4z5cfb1#
尝试限制-
2Mb/sec max throughput
,如下所示:很多时候,管道中断是由于scp推/拉操作对于堆栈中节流可以解决的问题来说太快而导致的。
scp man page
whlutmcx2#
问题是连接关闭,可能是因为文件太大,会话因超时而终止。
解决方案1:使用ServerAliveCountMax和ServerAliveInterval选项,从保持会话的服务器来回发送保持活动消息(ack)
在此示例中,每15秒返回一次ack,如果在45秒(15*3)内有3个ack未返回,则关闭会话。
请查看下面的属性文档:
ServerAliveCountMax设置服务器活动消息的数量(请参阅下文),可以在不使用ssh的情况下发送(1)接收从服务器返回的任何消息。如果在发送服务器活动消息时达到此阈值,ssh将断开与服务器的连接,请务必注意,服务器活动消息的使用与TCPKeepAlive有很大不同(如下所示)。服务器活动消息通过加密通道发送,因此不会被欺骗。由TCPKeepAlive启用的TCP keepalive选项是可欺骗的。当客户端或服务器依赖于知道连接何时变为无响应时,服务器活动机制非常有用。默认值为3。例如,如果ServerAliveInterval(见下文)设置为15,ServerAliveCountMax保留为默认值,如果服务器没有响应,ssh将在大约45秒后断开连接。
ServerAliveInterval以秒为单位设置超时间隔,在此间隔之后,如果未从服务器接收到任何数据,ssh(1)将通过加密通道发送消息以请求服务器响应。默认值为0,表示这些消息将不会发送到服务器。
解决方案2:我可以向您建议一个简单的解决方法:**压缩文件,发送并在目标计算机中解压缩。**这将缩短连接时间,并解决超时问题。
u0sqgete3#
当我复制一个已经在我的本地计算机上打开的文件时,它正忙碌,它就发生在我身上。
gojuced74#
我在Mac上也遇到了同样的问题,如果我在SCP上设置-l标志并设置低数据速率,它就会工作。最终,我禁用了“巨型帧”,这解决了我的问题。
puruo6ea5#
我也遇到了同样的问题。在我的情况下,问题是文件在另一个应用程序中打开。