Ist es möglich, zwei Linux-Verzeichnisse in Echtzeit zu synchronisieren?

25

Ich möchte ein Verzeichnis einer internen Festplatte mit einer externen Festplatte synchronisieren.

Wenn ich eine Datei auf meiner internen Festplatte schreibe oder ändere, wird automatisch dieselbe Datei auf die externe Festplatte kopiert ... und auf Wiedersehen, Backup;)

Dies wäre so etwas wie ein RAID mit einer externen Festplatte.

Ist das möglich?

stighy
quelle
22
Ich befürchte, dass das Denken "bye bye backup" so gut wie nie angemessen oder richtig ist.
Ben Pilbrow
Ernst. Was Ben gesagt hat. Dies ist KEIN Ersatz für ein Backup.
Duncan X Simpson

Antworten:

8

In Echtzeit, soweit ich weiß, gibt es nur DRBD . Ich glaube jedoch nicht, dass dies in Ihrer Situation zutrifft, da Sie beim Löschen einer Datei diese auch auf der externen Festplatte löschen. Einfacher können Sie rsync und ein Cron-Skript verwenden, das alle paar Minuten ausgeführt wird.

PiL
quelle
Vielen Dank für Ihre Antwort. Aber wenn "cron" rsync alle 5 Minuten ausgeführt wird, beeinträchtigt dies die Leistung? Ist es nicht zu schwer (überprüft es alle Dateien, wenn sich etwas ändert?)?
Stighy
Aus diesem Grund haben sie das Dateisystem mit Schnappschussfunktionen erfunden;)
PiL
1
DRBD kann etwas kompliziert zu konfigurieren sein. Wenn Sie Hilfe beim Konfigurieren benötigen, habe ich einen schönen Artikel geschrieben: geek-kb.com/install-and-configure-drbd-centos-6
Itai Ganot
30

lsyncd scheint die perfekte Lösung zu sein. es kombiniert inotify (in den Kernel integrierte Funktion, die nach Dateiänderungen in einem Verzeichnisbaum sucht) und rsync (plattformübergreifendes Dateisynchronisierungstool).

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

Zitat aus github:

Lsyncd überwacht eine Ereignisüberwachungsschnittstelle für lokale Verzeichnisbäume (inotify oder fsevents). Es aggregiert und kombiniert Ereignisse für einige Sekunden und erzeugt dann einen (oder mehrere) Prozesse, um die Änderungen zu synchronisieren. Standardmäßig ist dies rsync. Lsyncd ist somit eine leichte Live Mirror-Lösung, die vergleichsweise einfach zu installieren ist und keine neuen Dateisysteme oder Blockgeräte erfordert und die Leistung des lokalen Dateisystems nicht beeinträchtigt.

jens
quelle
1
Das
Gegenteil
8

Sie können einfach ein Software-RAID1 über Ihre internen und externen Festplatten erstellen. Für das System macht es keinen Unterschied, ob es sich um eine eingebaute Festplatte oder einen extern angeschlossenen Massenspeicher handelt.

Aber RAID ist kein Backup! Was passiert, wenn Sie versehentlich eine Datei auf Ihrer Festplatte löschen? Es wird auch auf Ihrem externen "Backup" -Laufwerk gelöscht.

Backups bestehen normalerweise aus mehr als einer Dateigeneration, sodass Sie versehentlich gelöschte Dateien daraus abrufen können.

joschi
quelle
4
Ein großes +1 für die explizite "RAID ist kein Backup".
Nickgrim
Auch ein Software-Raid mit internen und externen Festplattenmitgliedern wird wahrscheinlich sehr langsam, unzuverlässig und dafür vorgesehen sein, ziemlich oft zu brechen.
David
2

Inkron (wie mir auf dieser Seite Anfang dieses Jahres vorgeschlagen).

Es ist jedoch immer noch kein Ersatz für einen ordnungsgemäßen Sicherungsvorgang.

Matthew Iselin
quelle
3
wahrscheinlich wäre es besser, es in Stein zu gravieren.
Dee
1
@Dee Bitte erläutern Sie diesen Kommentar. Ist Incron keine gute Lösung?
Imolit
0

Dazu kann auch git-annex verwendet werden.

Mit git-annex können Dateien mit git verwaltet werden, ohne dass der Dateiinhalt in git eingecheckt werden muss. Dies mag paradox erscheinen, ist jedoch hilfreich, wenn der Umgang mit Dateien, die größer als git sind, aufgrund von Speicher-, Zeit- oder Speicherplatzbeschränkungen derzeit problemlos möglich ist

Es gibt eine exemplarische Vorgehensweise, um Benutzer mit git-annex schnell auf den neuesten Stand zu bringen

ypid
quelle
Während dies theoretisch die Frage beantworten mag, [wäre es vorzuziehen], die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Itai Ganot