スクリプトで SCP コマンドを使用するとランダムに「接続が拒否されました」

スクリプトで SCP コマンドを使用するとランダムに「接続が拒否されました」

私は SCP を使用して、クラウド内の VPS から PC にファイルをバックアップしています。バックアップ スクリプトの初期バージョンには、サーバー ルートからすべてをバックアップする単一の SCP コマンドがあります。これは問題なく動作します。

しかし、サーバーが大きくなるにつれて、これは大きくなり始めているので、特定のディレクトリ (約 12 個) で SCP コマンドを実行するようにスクリプトを変更しています。そして、今では、個々の SCP コマンドの一部が「接続が拒否されました」というメッセージでランダムに失敗します。しかし、スクリプト内の次の SCP コマンドは機能します... どこかで何らかの調整が行われた場合に備えて、各 SCP コマンドの間に 5 秒の遅延を追加しましたが、これでは十分ではありません。

何が原因でしょうか? 何を確認すればよいでしょうか?

netstatスクリプトの実行後、サーバー上で自分の IP からの複数の SSH 接続が表示されます (もちろん発行する接続も含まれますnetstatが、これはそのうちの 1 つだけでしょうか)。

問題になる場合、サーバーは Ubuntu Server 16.04 を実行しており、私の PC は Ubuntu 14.04 を実行しています。

答え1

おそらく、VPS プロバイダー (または独自のサーバー) が SSH 接続の速度を制限しています。速度制限を超えると、接続は拒否されます。

[アップデート]

ssh -L 2222:localhost:22 user@vpsこの制限が VPS プロバイダー側​​にある場合は、スクリプトの実行中にサーバーへのssh トンネル (つまり ) を確立し、このトンネル経由でのみ scp を実行する (つまり、localhost:2222私が指定したトンネル経由で) ことで、この制限を克服できます。

関連情報