rsync - rsyncの実行中に同期リストを更新する

rsync - rsyncの実行中に同期リストを更新する

私は、約20分ごとに約40個のデータファイルを生成するリモートコンピュータで大規模なコンピューティングタスクを実行しています。ファイルが作成されるとすぐに、リモートコンピュータからローカルコンピュータにファイルをインポートし、リモートコンピュータからすぐに削除したいと思います。

ただし、これは「リアルタイム」では実行rsync --remove-source files user@remote:~/datadir/* ./localdirされませんrsync。つまり、新しいファイルが追加されたらdatadirもう一度実行する必要がありますrsync

私が理解しているように、rsyncまずコピーするファイルのリストを作成してから、リストを1つずつ見てください。新しいファイルが追加されたときにリストを更新する方法があるのかdatadir​​、それともファイルが作成されるとすぐに、リモートコンピュータからローカルにファイルを移動する他の方法があるのだろうか。

ベストアンサー1

まあ、医者に行って「博士!こうすれば痛い!」と言うと医師が「そうしないでください!問題が解決しました!」と言うのと似ています。

同期ディレクトリ同期のためのものですが、あなたの説明によると、そうしたくありません。両方のディレクトリを「同期解除」しようとしています。ファイルが1つのディレクトリにあることを望んでいますが、両方のディレクトリにあることは望ましくありません。

他のシステムでファイルを生成するコードを変更できないと思います。なぜなら、可能であればただ実行されるようにしておくからです。ファイル転送プロトコルまたはリモートコントロールプロトコルまたはカールまたは、一部のファイルは、ジョブが完了するとすぐにソースコンピュータからターゲットコンピュータにプッシュされた後に削除されます。

したがって、ターゲットコンピュータでのみ作業するには、定期的なタスクを実行してリモートコンピュータにログインし、その中のすべてをコピーして削除することをお勧めします。~/データディレクトリ。それは節約するでしょう同期2つのディレクトリを比較するオーバーヘッド:コンテンツに興味がないため、努力は無駄になります。./ローカルディレクトリ- 常にコンテンツを取得します。~/データディレクトリそれを引き付けてください。使用リモートコントロールプロトコルまたはSCP最も簡単ですが、リモートシステムへの唯一のアクセス同期その後実行予約されたこと働く

これにより、作業サイクルに応じて、ファイルの作成と転送の間に数分の遅延が発生します。指摘したように同期実行されない生きる。すぐに転送する必要がある場合は、ファイル共有サーバーを実行する必要があります。アーマーただし、これは数分を節約するために多くの複雑さとオーバーヘッドを伴い、ファイルを削除するにはまだ頻繁にログインする必要があります。どのファイル共有ユーティリティもこれを実行できません。

これらすべてには小さな悪魔が隠れています相手に完全に破損していないファイルがあることをどうやって知ることができますか?

ファイルが作成されたディレクトリからコンテンツをインポートすると、コンテンツの量に関係なく、ファイル全体の一部がターゲットコンピュータに転送される可能性があります。たとえば、コピーを開始できます(または同期またはその他)ソースマシンのコードがファイルを書き込んでいる間。または、一部のハードウェアの問題(作成中にディスクがいっぱいになるなど)によって、生成プログラムが失敗する可能性があります。

したがって、この種のタスクを実行するとき、私は常に別々の作成と転送ディレクトリを持っています。MVいいえ CP)ファイルが作成から配送ディレクトリまで正常に作成されました。私はまたファイルの破損に対して非常に編集的であり、常にソースファイルのダイジェスト/チェックサム/マニフェストファイルを作成し、破損を防ぐためにすべての自動下位レベルのエントリを作成します。

おすすめ記事