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

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

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

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

これは外付けハードドライブを使用した RAID のようなものです。

これは可能ですか?

答え1

リアルタイムでは私が知る限りDRBDただし、ファイルを削除すると外部ディスク上のファイルも削除されるため、これはあなたの状況には当てはまらないと思います。より簡単な方法は、rsync と、数分ごとに実行される cron スクリプトを使用することです。

答え2

lsyncd完璧な解決策のようです。通知(ディレクトリツリー内のファイルの変更を監視するカーネル組み込み関数)rsync(クロスプラットフォームのファイル同期ツール)。

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

githubからの引用:

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

答え3

内部および外部ハード ドライブにソフトウェア RAID1 を作成するだけです。システムにとっては、内蔵ハード ドライブでも外部接続の大容量ストレージでも違いはありません。

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

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

答え4

git-annexこれを実現するためにも使用できます。

git-annex を使用すると、ファイルの内容を git にチェックインせずに、git でファイルを管理できます。矛盾しているように思えるかもしれませんが、メモリ、時間、ディスク容量の制限により、git が現在簡単に処理できるよりも大きなファイルを扱うときに便利です。

git-annexをすぐに使いこなせるようにするためのチュートリアルがあります

関連情報