Linux red-hat 5からWindowsマシン(Tempディレクトリの下)にファイルの割り当てを転送するために、次のscp構文を使用します。
備考:
シェルスクリプトでこの行を使用します
sshpass -p '$password' /usr/bin/scp -o StrictHostKeyChecking=no $FILE [email protected]:'D:/Temp'
ほとんどの場合、ファイルは正常に転送されました
しかし、ファイル転送中にscpがスタックすることがありますか? 、pingなどのように接続は問題ありませんが
そして私はscpから次のエラーを受け取ります(久しぶりに)
ssh_exchange_identification: read: Connection reset by peer
これはネットワークの問題の兆候である可能性があります-pingはすべての問題をキャッチするわけではありません。最も可能性の高い原因は、ファイアウォールまたは接続を切断しているNATデバイスです。
詳細出力用の-vをscpに追加すると、それが何をしているのかについてより詳細になり、何が起こっているのかについてより良い手がかりが得られる可能性があります。失敗した転送の出力を-vオプションで投稿したい場合は、より正確な答えを出すことができるかもしれません。
ピアによる接続のリセットとは、宛先サーバーが接続をリセット/閉じたことを正確に意味します。 NATデバイスは、しばらくの間データが送信されていない場合、またはデバイスが正しく機能していない場合にこれを実行します。
一部のISPは、ピアツーピアトラフィックを制限するトラフィックシェーピングの形式としてこれを実行します。残念ながら、SSH接続にも適用するISPもあります。これはビジネス接続では問題にならない可能性がありますが、どちらかの端に住宅用インターネット接続がある場合は、それが適用される可能性があります。
Windows上のSSHサーバーも不安定である可能性があります。どちらを使用するかは指定しませんが、すべてが確実に機能するわけではありません。
奇妙な実例の1つに、同様の問題を抱えている友人がいました。ケーブルモデムのファームウェアにバグがあり、数百万パケットごとに1つが破損していることが判明しました。小さな転送が完全に機能するほどまれですが、大きな転送は毎回死にます。
または、通常のインターネットの問題である可能性があります。インターネットは100%信頼できるわけではなく、決して信頼できるものではありません。接続が失敗することもあれば、途中でパケットが失われることもあります。イーサネットケーブル内の小さな男性がストライキを行い、パケットを運びたくない場合があります。したがって、それを処理できるツールが必要であり、成功するまで再試行を続けます。
ここでは、再開できるという理由だけで、rsyncの方が適しています。 このブログ投稿 scpの代わりに再開してrsyncを設定する方法を説明しています。必要に応じて、単純なシェルスクリプトを記述して、rsyncの終了コードを確認し、失敗した場合は再試行を続けることができます。 この他のブログ投稿 そのようなスクリプトの例があります。
Scpのその他の良い代替手段は何ですか? 、(100%の安定性が必要だと考えてください)
それを裏返し、WindowsマシンからWinSCPを使用して、Linuxサーバー上のファイルに接続して取得することを検討してください。
Eytan、Windowsマシンに他のツールをインストールできるかどうか、暗号化された接続が必要かどうかについては言及していません。ここに私のコメントと提案があります。
私の提案
ご覧のとおり、私はcygwinが好きです。これは、Windowsで何度も役立ちます...そして、Windowsデスクトップの「必須」ツールです。
幸運を。