web-dev-qa-db-ja.com

2つのLinuxディレクトリをリアルタイムで同期することは可能ですか?

内蔵ハードドライブのディレクトリを外付けハードドライブに同期したいのですが。

内蔵ハードドライブのファイルを書き込んだり変更したりすると、自動的に同じファイルが外部ハードドライブにコピーされます...そして、さようならバックアップ;)

これは、外付けハードドライブを備えたRAIDのようなものです。

これは可能ですか?

25
stighy

私が知る限りリアルタイムでは [〜#〜] drbd [〜#〜] しかない。ただし、ファイルを削除すると外部ディスクからも削除されるため、状況に当てはまるとは思いません。より簡単に、数分ごとに実行されるrsyncとcronスクリプトを使用できます。

8
PiL

lsyncd は完璧なソリューションのようです。 inotify(カーネル組み込み関数witchがディレクトリツリー内のファイルの変更を監視する)とrsync(クロスプラットフォームのファイル同期ツール)。

lsyncd -rsyncssh /home remotehost.org backup-home/

Githubからの引用:

Lsyncdは、ローカルディレクトリツリーのイベントモニターインターフェイス(inotifyまたはfsevents)を監視します。イベントを数秒間集約して結合し、1つ(または複数)のプロセスを生成して変更を同期します。デフォルトでは、これはrsyncです。したがって、Lsyncdは軽量のライブミラーソリューションであり、比較的簡単にインストールでき、新しいファイルシステムやブロックデバイスを必要とせず、ローカルファイルシステムのパフォーマンスを低下させません。

30
juwens

内部および外部ハードドライブ上にソフトウェアRAID1を作成するだけです。システムにとって、それが内蔵ハードドライブであるか、または外付けの大容量記憶装置であるかは、違いはありません。

ただし、RAIDはバックアップではありません。ハードドライブ上のファイルを誤って削除した場合はどうなりますか?また、外部の「バックアップ」ドライブからも削除されます。

バックアップは通常、複数の世代のファイルで構成されているため、誤って削除したファイルをそこから取得できます。

8
joschi

incron (今年初めにこのサイトで提案されたとおり)。

ただし、適切なバックアップ手順の代わりにはなりません。

2
Matthew Iselin

git-annex を使用してこれを実現することもできます。

git-annexを使用すると、ファイルの内容をgitにチェックインせずに、gitでファイルを管理できます。それは逆説的に思えるかもしれませんが、メモリ、時間、またはディスク容量の制限のために、現在gitで簡単に処理できるファイルよりも大きいファイルを処理する場合に役立ちます。

Git-annexを使用してユーザーをすばやく理解させるためのウォークスルーがあります

0
ypid

あなたは多分chironfsをチェックすることができます http://www.furquim.org/chironfs/

0
Dom