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のサブディレクトリ とする.は同じで、Aの下のすべてのファイルとディレクトリsyncを/mnt/d/rsynctest/B にすぎない.同上、コピーしないでください.obj, *.ilkは接尾辞のファイル名 同上、コピーしないでください.obj, *.ilkおよびfolderはreleaseまたはdebugのすべてのファイル名およびディレクトリ である.
5.时には复雑な要求があります.例えば、同じように、*をコピーしないでください.obj, *.ilk、大文字と小文字を区別しない除外debugとreleaseディレクトリですが、ディレクトリの下にあります.c/.cppなどのソースファイルは引き続き保持する必要があります
最後に最後の方法でバックアップし、バックアップするfolderのためにfilterを作成します.txt、それから1つのコマンドで対応するfolderをバックアップして、もしみんなが1つのルールを使うならば、1つのfilterを使います.txtでいいです.
退勤の30分前に、命令を実行して、すべてOKです.
バックアップされたディスクがeディスク、バックアップディスクがhディスクであると仮定する
いくつかの一般的なシナリオのメリットとデメリット
ここでは簡単な案を紹介します
このシナリオではlinux rsyncコマンドを使用して、rsyncの一般的な使い方を説明します.
rsync -avP /mnt/d/rsynctest/A /mnt/d/rsynctest/B
rsync -avP /mnt/d/rsynctest/A/ /mnt/d/rsynctest/B
vim exclude_list.txt
*.ilk
*.obj
:w
rsync -avP --exclude-from exclude_list.txt /mnt/d/rsynctest/A/ /mnt/d/rsynctest/B
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ディスクであると仮定する