ラクスルアナンダ

楽して自由になりたいライフハックと仕事ハック

ファイルの同期とバックアップ

仕事で使うファイルに限らないですが、過去に作ったファイルを参照するときというのが時々ありますよね。あと、ファイルに過去の変更履歴を残せるように、

    AAAA.xlsx    ←最初のバージョン

    AAAA_v1.xlsx  ←最初の公開バージョン

    AAAA_v2.xlsx

なんてリネームしながら使っているのもよく見ます。でも、ちゃんと意識してリネームしてから作業を始めないと、思わずCTRL+Sを押してしまって、「リリースバージョンのファイルを上書きした!!」と失敗することがしばしば…

 

ちなみに、Excelは、ファイル共有で複数人で編集すると、よく破損します。原因不明ですが、ひとつしかないファイルが、「読み取れませんでした」などと言われると、涙なしでは語れない作業が待っています。

 

こういうときのためにもバックアップは、自動的かつ勝手に取っておいてくれるのが安心。本日は、私が作っているバックアップシステムのご紹介。

ほかにもっと効率的な方法があったら教えてください。

目次

 

■FireFileCopyを使ったバックアップシステム

ここ10年くらい使っているのは、FireFileCopy(以下、FFC)というフリーソフト。ファイルを高速コピーするツールです(Vectorのページ)。

最初に、2つのフォルダを作ります。私はすべての作業に使うファイルは c:\_usr というフォルダの下に集めてます。"ドキュメント" フォルダの下でもいいのですが、エクスプローラでフォルダの移動をするときに、マウスを使わずに簡単に移動できるようにこのかたちにしてます。もう一つのフォルダは @Backup 。初期状態ではこの2つのフォルダは全く同じです。

 

FFCには、コピー時にタイムスタンプを比較して、新しい同名ファイルをコピーする時に古いファイルを自動でリネームするという機能があります。これを使って、古いファイルは、(もとのファイル名)_sync(タイムスタンプ) のようにリネームします。

 

こうしておいて、FFCで _usr ⇒ @Backup のコピーを実行すると、@Backup には履歴付きで最新ファイルと過去ファイルが残り続けます。

これをバッチファイルにしておいて、一区切りしたときと始業時にやってやれば、_v1 とか変なリネームをしなくても、かってにバックアップが残ります。

 

*1

 

これで、全くファイルの履歴を気にすることなく、_usr フォルダの下はファイルを編集しようが削除しようが、過去に使ったファイルはいつでも履歴を遡ることができるようになります。

 

■FreeFileSyncを使った同期とバックアップ

自宅には5台のPCが稼働しています。常時起動しているのは3台だけですが、それぞれに同じファイルがないと、「どこでも同じ環境で作業」というわけには行きません。

そこで、過去には、前述のFFSをつかって常にマスターとなるPCを起動しておいて、変更を加えるときにはそのPCにファイル共有でアクセスして変更を加えてました。

ここ数年は、FreeFileSync(以下、FFS) という同期ツールを使って、どのPCで作業をしても常にすべてのPCで最新状態で作業をできるようにしました。

 

で、これにも同期したときに、古いファイルをバックアップする機能があります。

これはFFCとは違い、同じファイルで古いファイルを別のフォルダに移動して、最新のファイルに置き換えるという機能です。つまり、この古いファイルの移動先を @Backup に指定してやれば、過去ファイルが @Backup に残るようになります。古いファイルは自動的にファイル名に処理したタイムスタンプがつくので、履歴としても使用可能。

 

ただし、名前につくのは処理した日付なので、ファイルのタイムスタンプとファイル名が一致しません。たとえば、PC-A に AAAA.xlsx があって、PC-B で FFS を実行すると、PC-Bに AAAA (今日の日付).xlsx というファイルが @Backup フォルダに残って、2つのPCのファイルが同じになります。 さらに、PC-C で FFS が起動すると、PC-C にも、AAAA (今日の日付).xlsx というPC-Bとは別名の同じ履歴ファイルが残ってしまいます。

つまり、FFSを実行したPCの数と同じだけ、同じファイルがバックアップとして残ってしまいます。

これはディスクスペースがもったいないので、ちょっとしたスクリプトを作って、

  FFSが作ったファイル名⇒元のファイル名+ファイルのタイムスタンプ

になるようにしています。

 

これで、すべての PC の @Backup フォルダを統合してやれば、ファイルの重複なく履歴ファイルが作れます。

 

ただしこの方法FFSを使った方法は、複数台のPCで同じフォルダ構造にしていないとできないのですが、複数台のPCを使っている人は、PCによって使い勝手が異なるのは避けたいでしょうから、きっと良い方法かと。

 

■バックアップのディスク容量削減

いずれの方法でも、@Backup 領域には、普段編集をするファイルを置いたファオルダの2~3倍(どのくらいの履歴を残すかによって変わります)の容量が必要になります。

 

おすすめは、@Backup フォルダをクラウドにおいてしまって、ローカルにはファイルを持たないようにすることです。OneDriveであれば、「空き容量を増やす」という設定をしておけば、ローカルのディスクは消費しません。過去履歴を参照するのは、頻度としてはそれほど多くないので、作業しているファイル(私で言えば、 _usr フォルダのファイル)はローカルに、もしものときにはクラウドから取り出してきて、というやり方が良いでしょう。

 

■一時ファイル置き場

@Backupには入れるまでもないけど、一時的に編集するファイルを置く場所として、"c:\_trash" というフォルダも作ってます。これはバックアップ対象外で、たまに綺麗さっぱり削除してます。

 

先頭に、"_" がついているのは、エクスプローラなどのファイル管理ツールでファイル名でソートしたときに一番上に来るからです。@, # などでも構いませんが、私の場合、これらには別の意味を持たせているので、"_" を使ってます。このキーのほうがタイプしやすいという理由もあったりします。

ちなみに、@,#の意味は

  @ : バックアップ対象外(この下のフォルダは @Backup には残らない)

  #  : 履歴対象外(この下のフォルダは、@Backup に最新ファイルだけが残る)

という意味で使ってます。

 

 

 

 

 

*1:

※注記:始業時なのは、終業時にはとっとと帰りたいので、翌日PC起動時にStartupに入れているためです。正しくは作業終了時でしょうけど。