私はこの問題に直面しており、既存のスクリプトの実行には時間がかかりすぎます。さらに調査したところ、転送された各ファイルが新しいSFTP接続が確立されているためだとわかりました。もちろん、バルク転送ファイルはずっと高速になります。ファイルの一括転送についての提案は、各ファイルまたは問題のあるファイル(転送にのみエラーが発生するファイル)をログに記録します(これは、ユーザーサポートのための簡単な追跡ファイルが必要です)。 SFTP/SSH/SCPの転送速度はおおよそ同じです。だから、これらのプロトコルのいずれかがうまくいくはずです。私はちょっとしたアイディアが必要です。SCP/SSH/SFTPベストファイル転送戦略に関する提案
答えて
from-filesパターンでファイルワイルドカードを使用するのはどうですか?すなわち
cd sendDir; scp newFiles* [email protected]:/target/path
たとえば?
あなたは「もちろんバルク転送ファイルはずっと高速です」と書いています。あなたが冗談を言うことを願っています。あなたのファイルが送信するのに数分か数時間かかる場合は、scpを再起動することは重要ではありません。おそらく、転送の最も遅い部分は、データを送信するために費やされた時間です。ですから、@ Johnsywebからのscp圧縮の使用に関する良いコメントですが、それには時間がかかり、CPUを100%スパイクできますか?秒、分ですか?だから、それはあなたの送信側の他の作業にどのように影響しますか。あなたが仕事のためにこれをやっていて、それがたくさん使われるならば、テストする価値があります。
問題ファイルに関する情報については、scpの出力をlogfileに保存してください。
scp newFiles* [email protected]:/target/path > /tmp/yourSystem/scpScriptLogFile.txt 2>&1
問題があると思われたときや、エラーメッセージが表示された後に確認するときは、問題に関する情報を電子メールで送信するフィルタスクリプトを作成します。
こちらがお役に立てば幸いです。
rsync
です。
rsync -chavz --partial --progress --stats source_files remotehost.domain:target_dir
:
--checksum -c -- skip based on checksums, not mod-time & size
--human-readable -h -- output numbers in a human-readable format
--archive -a -- archive mode; same as -rlptgoD (no -H)
--verbose -v -- increase verbosity
--compress -z -- compress file data during the transfer
--partial -- keep partially transferred files
--progress -- show progress during transfer
--stats -- give some file-transfer stats
についてrsync
はそれが必要それだけをコピーするものであることを偉大なもの。したがって、コマンドをもう一度実行すると、その間にいずれかのファイルが変更されている場合を除き、何もコピーされません。転送が何とか中断された場合にも便利です。上記のコマンドの出力は、ファイル転送がどのくらいスピードアップされたかに関する情報を提供します。
SFTPモジュールを使用できるスクリプト言語を使用してください。
たとえば、Perlであなたがネット:: SFTPを持っている::外国人:同じSSH接続は、すべての転送に使用されます
$sftp = Net::SFTP::Foreign->new($host);
for my $file (@files) {
$sftp->put("$local_dir/$file", "$remote_dir/$file");
}
その方法。
別のオプションは、リモート・ホストでローカルに(.tgz形式)アーカイブファイルを作成し、それを転送し、解凍することです:
はtar czf - file1 file2 ... | ssh $host tar xzf -
- 1. 一致するコンテンツを自動的に提案するDjangoの戦略
- 2. Javaの特殊文字を削除するための戦略提案
- 3. ユーザーコントロールに関する提案
- 4. LDAに関する提案
- 5. テストライティング戦略に関するアドバイス
- 6. デフォルト戦略の戦略パターン
- 7. HTTP POST送信提案
- 8. Springフレームワークに関する提案書
- 9. Spring OAuth2アーキテクチャに関する提案
- 10. グラフィックアプリケーションのアーキテクチャ/デザインに関する提案
- 11. データベースタイプの使用に関する提案
- 12. Log4Net構成GUIに関する提案
- 13. 戦略
- 14. Reduxアプリケーション内でOAuthアクセストークンを提供するための戦略
- 15. MATLABメンバ関数の提案
- 16. 従来のアプリケーション移行戦略 - 戦略に必要なアドバイス
- 17. Railsフラグメントキャッシュ戦略
- 18. JIRAコンポーネント戦略
- 19. バックアップ戦略
- 20. Openlayers bbox戦略
- 21. ソフトウェアデザイン戦略
- 22. solrインデックス戦略
- 23. プロジェクト/コードリリース戦略
- 24. 集約戦略
- 25. Golangログ戦略
- 26. UMLデータフローダイアグラム戦略
- 27. ELBルーティング戦略
- 28. データベースプルーニングの戦略
- 29. OAuth2ベアラトークンリフレッシュ戦略
- 30. ロギング戦略
今のrsyncは、サーバーにインストールされていません。 SFTP/SSH/SCPを使って同じことをする他の方法はありますか? –
インストールは簡単です。 http://rsync.samba.org/を参照してください。それに失敗すると、[manpage for scp](http://www.manpagez.com/man/1/scp/osx-10.6)を確認することができます。PHPなど)と圧縮の設定を微調整するなど... – Johnsyweb