変更時に、あるフォルダから別のフォルダにすべてのファイル変更を連続的にコピーする(Windows)


4

集中管理されたバージョン管理下に置かれた大規模なJava Webアプリケーションで作業していますが、ソースファイルは実際のサーバーの構築と実行に使用されます。

私の問題は、この巨大なアプリケーションを再構築してファイルへの変更を確認するか、すべての変更を追跡して変更したファイルを元の場所にコピーしてからソース管理に戻す必要があることです。

私の質問は次のとおりです。ソースフォルダの変更を監視し、変更されたファイルを一時フォルダXに自動的にコピーするコマンドラインスクリプトを実行できますか。

考えは手動で2位置問題を軽減しなければならないことで失敗のポイントを取除くことです。


あなたはそれが完全なコピーであるフォルダーまたは変更されたファイルだけから成るフォルダーが欲しいですか?
David

完全なコピーアプリケーションをビルドすると、大きなコピーが1つ作成されます。手動でソースを変更した場合は、自動的にコピーフォルダに移行します。
Barney

Robocopyはそれをすることができますが、それが良い考えであるかどうか私はわかりません。
kush

@kushさん、ありがとうございました。 ロボコピー 。ロボコピーは薄片だから?実装は危険ですか?本質的に悪い考えですか?
Barney

ごく一般的なシナリオのように聞こえるような(自分が間違っている場合は修正してください)ような独自の実装を考え出す必要はありません。本番サーバー上のファイルを取得して一時フォルダーを更新しています(そうではありません)。
kush

回答:


6

私は提案します FreeFileSync これは、数秒ごとに2つのフォルダを自動的に同期するスクリプトを作成する機能を持っているようです。個人的には遊んでいませんが、有望そうです。

enter image description here enter image description here


これをありがとう - それは利用する ボリュームシャドウコピー これはrobocopyソリューションに対する重大な警告であるように思われるので、それは有望に見えます。私はそれを一回転させて、すぐに資格を得ます。
Barney

1
これはとてもうまくいきます。動作を指定するための詳細なオプションはたくさんあります。 Item exists on left side onlyRight side is newerなど - バッチツールは、目立ったパフォーマンスの低下(150MBを超える300ファイルの場合)なしにほぼ瞬時に応答するために0秒ごとに実行することができます。しかし、それは強力で柔軟です。もう一度、ありがとう。
Barney

素晴らしいソフト!良いオンラインドキュメントTHX !
M'sieur Toph'

2

RoboCopyの使用を検討しましたか? http://ss64.com/nt/robocopy.html

RoboCopyは、設定された期間が経過した後、および/またはデータセットへのいくつかの変更が行われた後にデータをコピーするように設定できます。

/ MON:n:モニタソース。 n個を超える変更が見られたときに再度実行します。
/ MOT:m:モニターソース。変更した場合は、m分後に再度実行します。


結果として得られたバッチファイルをWindowsタスクスケジューラに追加して、特定の時間に実行することもできます。
BobJim

0

また、あなたは(老化)を見たいと思うかもしれません DeltaCopy クライアントとサーバー。基本的に、それはLinux風です rsync Windows用の実装、スクリプト可能(必要に応じてWindowsスケジューラを使用)、およびその主な利点は 変更部分のみ 変更されたファイル(はい、ファイル!)が送信されます。これは大規模プロジェクトでのトラフィックを大幅に節約することができます。デメリットは、もちろんファイルリストを作成して送信しなければならないことです。

また、いくつかの(小さな)注意点があります。

  • それは古いソフトウェアですので、あなたは交換する必要があるかもしれません cygwin1.dll Windowsマシンで。 (LinuxとWindowsの間でファイルを同期する場合は、 シグウィン その時点では16ビットUnicode / UTF-8ファイル名変換を正しく処理できなかった基礎フレームワークとして)
  • それほどユーザーフレンドリーではないので、Linuxを見てください。 rsyncのmanページ その潜在能力を最大限に引き出すために。
  • Windowsでは、「クライアント」と「サーバー」のマシンが必要です。
  • サーバーがLinuxマシンの場合は、セットアップする必要があります。 rsyncd 正しく
  • Windowsのボリュームシャドウコピーはサポートされていません(ただし、必要ないかもしれません)。

まあ、それはまた利点があります(だからこそ私は今でもそれを毎日使っています):

  • * NIXのrsyncとrsyncdと完全な互換性があります。実績のある、よく知られた、そして非常に効率的な同期システム。それでも
  • オーバーヘッドを小さく保ちます:変更されたデータ(ファイルの中でさえも)だけがネットワークを介して転送されます。ですから、あなたが在宅勤務をしていたり​​、遅い接続を介してあなたのサーバーに接続しているのであれば、とてもうれしいです。
  • フェイルセーフ、どうやら。私は何年にもわたって何ギガバイトものデータを同期してきましたが、ターゲットファイルに「パッチを当てる」ときに1つの問題が発生することはありません。たとえ私がその概念を少し心配していたとしても、最初は。
  • 私は依然としてDeltyCopyを使用して、Windowsマシンから中央LinuxサーバーとWindows 2003サーバーの両方に毎日ファイルをバックアップしています。正しくインストールされていれば、非常によく安全に動作します。

まあ、あなた次第。楽しむ! (そしてFreeFileSyncについて教えてください。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.