Czy można zsynchronizować dwa katalogi linux w czasie rzeczywistym?

25

Chciałbym zsynchronizować katalog wewnętrznego dysku twardego z zewnętrznym dyskiem twardym.

Kiedy piszę lub modyfikuję plik na wewnętrznym dysku twardym, automatycznie ten sam plik byłby kopiowany na zewnętrzny dysk twardy ... i pa kopia zapasowa;)

To byłoby coś w rodzaju RAID z zewnętrznym dyskiem twardym.

czy to możliwe?

mocny
źródło
22
Obawiam się, że myślenie „kopia zapasowa do widzenia” prawie nigdy nie jest właściwe ani poprawne.
Ben Pilbrow
Poważnie. Co powiedział Ben. To NIE jest substytutem dla kopii zapasowej.
Duncan X Simpson

Odpowiedzi:

8

O ile wiem, w czasie rzeczywistym jest tylko DRBD . Ale nie sądzę, aby miało to zastosowanie w twojej sytuacji, ponieważ kiedy usuniesz plik, usuniesz go również na dysku zewnętrznym. Łatwiej można użyć rsync i skryptu cron, który jest uruchamiany co kilka minut.

PiL
źródło
Dziękuję za Twoją odpowiedź. Ale jeśli rsync „cron” ma się uruchamiać co 0,5 minuty, czy wpływa to na wydajność? Czy to nie jest zbyt ciężkie (sprawdza wszystkie pliki, jeśli coś się zmieniło?)?
stighy
Dlatego wymyślili system plików z funkcją migawek;)
PiL
1
DRBD może być nieco skomplikowany w konfiguracji, jeśli potrzebujesz pomocy w jego konfiguracji, napisałem fajny artykuł: geek-kb.com/install-and-configure-drbd-centos-6
Itai Ganot
30

lsyncd wydaje się być idealnym rozwiązaniem. Łączy inotify (wbudowana funkcja jądra, która obserwuje zmiany plików w drzewach katalogów) i rsync (wieloplatformowe narzędzie do synchronizacji plików).

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

Cytat z github:

Lsyncd obserwuje interfejs monitorowania zdarzeń lokalnego drzewa katalogów (inotify lub fsevents). Agreguje i łączy zdarzenia przez kilka sekund, a następnie spawnuje jeden (lub więcej) procesów w celu synchronizacji zmian. Domyślnie jest to rsync. Lsyncd jest zatem lekkim rozwiązaniem Live Mirror, które jest stosunkowo łatwe do zainstalowania, nie wymaga nowych systemów plików lub urządzeń blokowych i nie obniża wydajności lokalnego systemu plików.

jens
źródło
1
con jest to, że nie jest dwukierunkowy
tymik
8

Możesz po prostu utworzyć Software RAID1 na wewnętrznych i zewnętrznych dyskach twardych. W przypadku systemu nie ma znaczenia, czy jest to wbudowany dysk twardy, czy podłączone zewnętrznie urządzenie pamięci masowej.

Ale RAID nie jest kopią zapasową! Co się stanie, jeśli przypadkowo usuniesz plik z dysku twardego? Zostaje również usunięty z zewnętrznego dysku „kopii zapasowej”.

Kopie zapasowe zwykle zawierają więcej niż jedną generację plików, dzięki czemu można odzyskać z niej przypadkowo usunięte pliki.

joschi
źródło
4
Duża +1 dla jawnego „RAID nie jest kopią zapasową”.
nickgrim
Raid oprogramowania z wewnętrznymi i zewnętrznymi dyskami twardymi prawdopodobnie będzie bardzo powolny, zawodny i przeznaczony do częstych awarii.
David
2

incron (jak zasugerowano mi na tej stronie na początku tego roku).

Nadal jednak nie zastąpi właściwej procedury tworzenia kopii zapasowej.

Matthew Iselin
źródło
3
prawdopodobnie lepiej byłoby wygrawerować go w kamieniu.
Dee
1
@Dee Proszę wyjaśnić ten komentarz. Czy incron nie jest dobrym rozwiązaniem?
imolit
0

Aby to osiągnąć, można również użyć git-annex .

git-annex pozwala na zarządzanie plikami za pomocą git, bez sprawdzania zawartości pliku w git. Chociaż może się to wydawać paradoksalne, jest przydatne, gdy mamy do czynienia z plikami większymi niż git może obecnie łatwo obsłużyć, czy to z powodu ograniczeń pamięci, czasu lub miejsca na dysku

Istnieje przewodnik, aby szybko przyśpieszyć użytkowników dzięki git-annex

ypid
źródło
Chociaż teoretycznie może to odpowiedzieć na pytanie, [byłoby lepiej] zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Itai Ganot,