Windows 10の下でフォルダバックアップを同期する方法

4842 ワード

ソフトウェアエンジニアが効率的で低コストのバックアップ・スキームを呼び出すことが重要です.ほとんどの人がディスクを破壊した経験があると信じています.ここでは、スキームを紹介します.

いくつかの一般的なシナリオのメリットとデメリット

  • ファイルコピーの利点:操作が簡単明瞭で欠点がある:効率が低下し、一部の中間コンパイルファイルがコピーされたため、ハードディスク(HDD)のスペースが大幅に浪費され、バックアップ時間が長すぎる可能性がある
  • バージョン制御はgit、performance、CVS、SVNなどの利点を通じて:機能が強くて、協同して開発することができて、完備したバージョン制御、コードdiff、mergeなどの機能の欠点:
  • 一人が行う前期または私密開発については、コードはまだ
  • を公開したくない.
  • サーバを構築する必要があり、その後データを復元するには、クライアントとサーバを通じてデータを復元しなければならないのか、それとも少し面倒に見えるのか.
  • また自分でcheck inのファイルを選択しなければならなくて、少し面倒です

  • ここでは簡単な案を紹介します

  • このスキームの利点:
  • ワンタッチのバックアップで、毎日
  • を実行できます.
  • コンパイル中に生成するファイルを無視する
  • .
  • 変化したファイルのみを同期する
  • シナリオ要件
  • wsl(Windows Subsystem for Linux)をインストールWindows Storeでubuntuを検索し、インストールすると、すべてのwidowsのディスクが/mnt/下、例えばCディスク、つまり/mnt/cにマッピングされ、wslの下でwindowsシステムのファイルにアクセスできます.
  • バックアップハードディスクを用意このハードディスクはバックアップ用としてのみ使用されます.他のソフトウェアでデータを更新したり、バックアップハードディスクで作業したりしないでください.新しい環境で作業すると、できるだけワークコンピュータのハードディスクにコピーして変更してください.大容量のモバイルハードディスクの価格は一般的に1000元未満で、ハードディスクを壊して、対応するデータの回復コストはすべて千元で、甚だしきに至っては数千元で、その上更に1枚の新しいハードディスクを買ってデータの回復をコピーして帰らなければならなくて、やはり余分に1枚のバックアップのモバイルハードディスクを用意してお得です.もちろんバックアップハードディスクも4・5年ごとに交換したほうがいいです.


  • このシナリオではlinux rsyncコマンドを使用して、rsyncの一般的な使い方を説明します.
  • /mnt/d/rsynctest/A syncを/mnt/d/rsynctest/B,AをBのサブディレクトリ
  • とする.
    rsync -avP /mnt/d/rsynctest/A /mnt/d/rsynctest/B
  • は同じで、Aの下のすべてのファイルとディレクトリsyncを/mnt/d/rsynctest/B
  • にすぎない.
    rsync -avP /mnt/d/rsynctest/A/ /mnt/d/rsynctest/B
  • 同上、コピーしないでください.obj, *.ilkは接尾辞のファイル名
  • vim exclude_list.txt
    *.ilk
    *.obj
    :w
    rsync -avP --exclude-from exclude_list.txt /mnt/d/rsynctest/A/ /mnt/d/rsynctest/B
  • 同上、コピーしないでください.obj, *.ilkおよびfolderはreleaseまたはdebugのすべてのファイル名およびディレクトリ
  • である.
    vim exclude_list.txt
    *.ilk
    *.obj
    release/*
    debug/*
    :w
    rsync -avP --exclude-from exclude_list.txt /mnt/d/rsynctest/A/ /mnt/rsynctest/B

    5.时には复雑な要求があります.例えば、同じように、*をコピーしないでください.obj, *.ilk、大文字と小文字を区別しない除外debugとreleaseディレクトリですが、ディレクトリの下にあります.c/.cppなどのソースファイルは引き続き保持する必要があります
    vim filter.txt
    + *.cpp
    + *.asm
    + *.c
    + *.cxx
    + *.h
    + *.hpp
    + *.hxx
    + *.java
    + *.inl
    + *.def
    + *.idl
    + readme.txt
    - *.ncb
    - *.sbr
    - *.ilk
    - *.sdf
    - *.pdb
    - *.ipdb
    - *.obj
    - *.iobj
    - *.bsc
    - *.idb
    - *.exe
    - *.lib
    - *.dll
    - *.cache
    - *.lastbuildstate
    - *.tlog
    - *.so
    - *.suo
    - *.[vV][cC].[dD][bB]
    - */[dD][eE][bB][uU][gG]/*
    - */[rR][eE][lL][eE][aA][sS][eE]/*
    - */ipch/*
    :w
    
    rsync -avP --filter="merge filter.txt" /mnt/d/rsynctest/A/ /mnt/d/rsynctest/B

    最後に最後の方法でバックアップし、バックアップするfolderのためにfilterを作成します.txt、それから1つのコマンドで対応するfolderをバックアップして、もしみんなが1つのルールを使うならば、1つのfilterを使います.txtでいいです.
    退勤の30分前に、命令を実行して、すべてOKです.
    rsync -avP --filter="merge filter.txt" /mnt/e/ /mnt/h

    バックアップされたディスクがeディスク、バックアップディスクがhディスクであると仮定する