![在脚本中使用 SCP 命令随机“连接被拒绝”](https://linux22.com/image/101174/%E5%9C%A8%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%BD%BF%E7%94%A8%20SCP%20%E5%91%BD%E4%BB%A4%E9%9A%8F%E6%9C%BA%E2%80%9C%E8%BF%9E%E6%8E%A5%E8%A2%AB%E6%8B%92%E7%BB%9D%E2%80%9D.png)
我正在使用 SCP 将文件从云中的 VPS 备份到我的 PC。在备份脚本的早期版本中,有一个 SCP 命令可以备份服务器根目录中的所有内容。这工作完美无缺..
然而,随着服务器的增长,它开始变大,因此我正在更改脚本以在特定目录(大约十几个)上运行 SCP 命令。现在,一些单独的 SCP 命令随机失败,并显示“连接被拒绝”。但脚本中的下一个 SCP 命令有效...我在每个 SCP 命令之间添加了 5 秒的延迟,以防某处出现一些限制,但这还不够。
可能是什么原因造成的?我可以检查什么?
netstat
脚本运行后在服务器上显示来自我的 IP 的多个 ssh 连接(当然包括要发出的连接netstat
,但这只是其中之一?)。
如果重要的话,服务器运行的是 Ubuntu Server 16.04,而我的电脑运行的是 Ubuntu 14.04。
答案1
很可能您的 VPS 提供商(或您自己的服务器)限制了 ssh 连接的速率。一旦超过速率限制,您的连接将被拒绝。
[更新]
如果此限制在您的 VPS 提供商方面,您可以通过ssh -L 2222:localhost:22 user@vps
在脚本持续时间内建立到您的服务器的 ssh 隧道(即 )来克服它,然后仅通过此隧道进行 scp-ing(即通过localhost:2222
我提供的隧道) 。