増分バックアップを行うROBOCOPYコマンド


31

ROBOCOPYのドキュメントには圧倒されます。ネットワークドライブ(M)にローカルファイルの増分バックアップを行います。ログファイルを使用せず、画面へのテキストをできるだけ少なくして、できるだけ早く実行したい。私のファイルはすべて、多くのネストされたサブフォルダーを持つ1つのフォルダー(MyFolder)内のどこかにあります。「増分」とは、「新規または変更されたもののみをコピーする」ことを意味します。宛先の履歴ファイルを削除したくありませんが、ファイルを変更した場合は新しいバージョンのみが必要です。また、ファイルを変更していない場合は、既存のバックアップファイルにコピーしたくありません。以下は正しいですか?(Win7 Enterpriseの実行。)

robocopy C:\MyFolder M:\MyFolder /z /np /xo /e

ロボコピー以外の提案はありません。何もインストールすることはできません。そして、私はセキュリティに関することは気にしません。そのための人がいます(欲しいかどうかは関係ありません)。;-)


1
サブディレクトリをコピーするには、/ sまたは/ eオプションが必要です。
デビッドマーシャル14

@DavidMarshall:おっと。私は実際にそれを知っていました。追加されました。だから、今私は元気ですか?
dmm 14

はい。私は似たようなものを使用しています。
デビッドマーシャル14

今すぐテスト。画面にはまだたくさんのものが書き込まれています。将来の実行でそれをどのように取り除くのですか?
dmm 14

3
賢明なパフォーマンスの大きな違いを生むことができる1つのオプションは、マルチスレッド転送を持つことです。 /MT[:N] 私は4コアのCPUを持っているので、通常、スレッドの数に8〜16の範囲で使用します。コアあたり2〜4個のスレッドを想定しています。ハードウェアで異なる値を使用してテストする必要があります。マルチスレッドは、小さなファイルがたくさんあるときに最も役立ちます。少数の大きなファイルがある場合、それはほとんど助けにはなりません。
ゾレダチェ14

回答:


40

数年前から次のスクリプトのバリアントを正常に使用しています。

robocopy C:\source M:\destination /MIR /FFT /R:3 /W:10 /Z /NP /NDL

パラメーターの説明

  • /MIR(と同等のオプションが/E /PURGE)「ミラー」の略で、最も重要なオプションです。ソースフォルダーを「マスター」と見なし、ターゲット側の変更を上書きします。これは、バックアップに役立つ設定です。

  • /FFTこれは非常に重要なオプションです。ファイルのタイムスタンプを比較するときに2秒の差が許されるため、コンピューターとバックアップデバイスのクロックのわずかな差は問題になりません。これにより、ファイルの変更時刻が正確に同期されていない場合でも、変更されたファイルのみがコピーされます。

  • /R:3接続が失敗する場合の再試行回数を/W:10指定し、再試行間の待機時間を10秒に指定します。これらは、ネットワークを介してバックアップを行うときに便利なオプションです。

  • /Z 「再起動モード」でファイルをコピーします。そのため、部分的にコピーされたファイルは中断後も継続できます。

  • /NP/NDLいくつかのデバッグ出力を抑制し、さらに、を追加して/NS、出力の量をさらに減らすことができます(詳細についてはドキュメントを参照)。ただし、最初の実行時にデバッグ出力を出力して、すべてが期待どおりに機能することを確認することをお勧めします。/NC/NFL

他のユーザーが言及した追加の有用なパラメーター

  • /XJDバックアップ中に無限ループなどの問題を引き起こす可能性のあるディレクトリ、シンボリックリンクの「ジャンクションポイント」を除外します。詳細については、Brianのコメントを参照してください。

  • /MT[:N]マルチスレッドを使用し、多くの小さなファイルの転送を高速化できます。Nの場合、通常のマシンでコア数の2〜4倍の値を実行する必要があります。Zoredacheが元の質問についてコメントしました。

Grangerのコメントに応じて編集します。

ソース側ではなく宛先に存在するファイルを本当に保持したい場合は、/MIRオプションをに置き換えてください/E。ただし、/MIR増分バックアップに宛先を使用する場合に使用することを強くお勧めします。そうしないと、ソースで名前が変更または移動されたファイルが宛先に散らかるので、重複することになります。通常、ソースフォルダーツリーの1:1コピーを含むサブフォルダー「バックアップ」を宛先に作成します。これにより、バックアップフォルダの横にある履歴ファイルを保持し、後で安全に削除または再編成できます。


このコマンドは許可付きでファイルをコピーできますか?robocopyをC:\ソースM:\先/ MIR / FFT / R:3 / W:10 / Z / NP / NDL
Shabeerシェール

4
/ MIR(/ PURGE)を除き、ソースに存在しないファイルを宛先に削除します。尋ねられた質問は、それが望まれていないことを明示的に述べました。
グレンジャー

@Shabeerいいえ、デフォルトでは、Robocopyはデータ(D)、属性(A)、およびタイムスタンプ(T)のみをコピーします。「/ copy:<value>」パラメーターで他の値を指定する必要があります。たとえば、ACL許可を含めるには「/ copy:DATS」です。しかし、LinuxベースのNASにコピーするので、それはあまり意味がありません。
ペデルパンセン

1
@ブライアンヒントをありがとう。ジャンクションポイントで問題が発生したことはありませんが、万が一に備えてジャンクションポイントを回避しても問題はないでしょう。私の答えに追加しました。
-pederpansen

1
@pederpansen:ユーザーフォルダーをコピー(またはドライブ全体をコピー)するときに発生する傾向があります。通常、アプリケーションデータフォルダーは、アプリケーションの互換性の理由で接合点があるため、犯人です。サンプル無限パスを表示する場合は、コマンドプロンプトから「cd C:\ Users \ [USERFOLDER] \ AppData \ Local \ Application Data \ application data \ application data \」を実行してみてください。これはWindows 10でも動作します
ブライアン

8

私は次を使用したいです:

robocopy "C:\Users\<user>" "F:\robocopy\<user>" /XJD /R:0 /XA:SH /E /ZB /XO /XD "Downloads" "AppData" /LOG:robocopy.log /TEE

これを管理者として実行すると、バックアップモード(/bオプション)で使用中のファイルのコピーを作成できます。

バックアップの増分特性に関連しないその他のオプションは次のとおりです。

/XD バックアップからディレクトリを除外します。

/XJD ジャンクションポイント(「マイミュージック」)を除外します。

/R:0 失敗した試行の再試行を0に設定します。

/XA:SH 非表示およびシステムファイルをスキップします。

できるだけ多くのログ情報を削除するには、次のオプションを追加します/NP /NS /NDL /NFL /NC

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