ファイル同期




ファイル同期(ファイルどうき、英: File synchronization)は、2つ以上の場所にある同じファイルが同じ内容になるようにする処理である。ある場所にあるファイルに何らかの変更を加えたとき、同期処理によって別の場所にある同じファイルにも同じ変更がなされる。


ファイル同期は一方向の場合と双方向の場合がある。一方向同期はミラーリングとも呼ばれ、ファイルは常にソースからターゲットに向けてコピーされ、ターゲット側からソース側に書き戻されることはない。双方向同期では任意の方向にコピーが行われ、複数の場所で互いに同期をとる。本項目では後者の双方向同期を扱う。前者についてはミラーリングを参照されたい。


ファイル同期はファイル群の同じバージョンを複数の場所で保持可能にする。ファイルの格納される場所はコンピュータのハードディスク上のディレクトリの場合もあるし、USBメモリなどの可搬記憶媒体の場合もある。同期を行うと、どちらが最後に更新されたかに関わらず、同期対象となったそれぞれの場所のファイルが最新版になる。ファイル同期はモバイル機器を良く使う場合や、複数のコンピュータを使う場合に便利である。


バックアップ目的で使うこともできるが、バックアップが主たる目的というわけではない。


ディレクトリを手で同期させることも可能だが、ソフトウェアツールを使った方が高速で間違いがない。



関連ツール


ファイル同期ツールはバージョン管理システム(CVS、Subversion など)、分散ファイルシステム(Coda など)、ミラーリングユーティリティ(rsync など)と似ており、これらはどれもファイル群を同期させるという目的が共通している。ただし、実際にファイル群の複数のコピーへの更新を扱えるのは、ファイル同期ツールとバージョン管理システムである。


バージョン管理システムは、特に複数の人が同じファイルを同時に更新する状況を扱えるが、ファイル同期ツールはあるファイルの1つのコピーだけが更新される状況に最適化されている。そのため、バージョン管理システムをファイル同期ツールとして使うこともできるが、専用ツールの方がオーバーヘッドが少ない。


分散ファイルシステムもあるファイルの複数のバージョンの同期を扱えるとも言える。しかしファイル同期とは異なり、これはユーザーから見て透過的であり、通常ファイルが格納されている装置は常に接続されていなければならない。



機能


高度なファイル同期ツールでは、2つの場所の差分を比較し、ファイル全体をコピーするのではなく、差分のみをやり取りして同期を行う。一方が遠隔にある場合、遠隔側のコンピュータにサーバまたはソフトウェアエージェントがインストールされていなければならない。よい同期ツールはセキュリティのために暗号化することもでき、インターネット経由のファイル同期も可能となっている。


その他に次のような機能もある。



  • ネットワーク経由のデータ転送はデータ圧縮を行う。

  • 両方でファイルが更新されている場合、コンフリクト(衝突)を検出できる。単に更新時刻だけを比較して新しい方でもう一方を上書きすると、更新内容が失われる恐れがある。

  • 特に、リムーバブルメディアなどの中間記憶媒体を使って2つのマシン間でファイル同期を行うことをサポートしている場合がある。ファイル同期ツールは一般にそのような用途に対応可能だが、可搬媒体に格納すべきデータ量を削減できるような機能を持つものもある。

  • 同期を行う前に何がどう更新されるのかをプレビューする機能。

  • 個々のファイル間の差分を見る機能。


一度に2つの場所間で同期することを繰り返すことで、3つ以上の地点間で同期することができる。



関連項目



  • バックアップ

  • 分散ファイルシステム

  • ミラーリング


  • SyncML - カレンダー、連絡先、電子メールなどを中心としたデータ同期規格

  • バージョン管理システム




Popular posts from this blog

android studio warns about leanback feature tag usage required on manifest while using Unity exported app?

SQL update select statement

'app-layout' is not a known element: how to share Component with different Modules