Kupuję zewnętrzny dysk twardy, aby wykonać kopię zapasową komputerów w moim domu (wreszcie !!). Mam nadzieję użyć rsync. Widziałem przykład, który robi (lub wydaje się, że robi) dokładnie to, czego chcę. Coś takiego:
rsync -aE --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups
Jednak patrząc na dokumentację i przykłady rsync itp., Sprawy zaczęły wyglądać DUŻO bardziej skomplikowane. Networking, demony i żargon, o mój!
Zakładam, że żadne z tych rzeczy nie jest konieczne, dopóki tylko synchronizuję komputer z dyskiem zewnętrznym podłączonym do FireWire. Mylę się zakładając, że? Czy rzeczy naprawdę będą bardziej skomplikowane niż to niewinne polecenie?
Odpowiedzi:
Rsync działa dobrze na dyskach lokalnych. Jeśli jednak wykryje ścieżki lokalne, automatycznie przejdzie w tryb - cały plik, który nie kopiuje różnic, a jedynie kopiuje plik źródłowy nad plikiem docelowym. Rsync nadal ignoruje pliki, które w ogóle się nie zmieniły. Gdy przepustowość między źródłem a miejscem docelowym jest wysoka (jak dwa dyski lokalne), jest to znacznie szybsze niż czytanie obu plików, a następnie kopiowanie tylko zmienionych bitów.
źródło
Używam rsync z następującymi flagami, które łatwo zapamiętują jako „glop” i „trunc” i „v”.
rsync -gloptrunc $srcdir $dstdir
Krótki przewodnik:
Uwaga: w lokalnych systemach plików zostanie to zastąpione i zamiast tego zostaną skopiowane całe pliki.
Zawsze uruchamiam powyższe, aby upewnić się, że działa, a następnie usuwam flagę „n”, że gdy będę zadowolony z wyników.
Kluczowe cechy powyższych kombinacji:
Używam tego do synchronizacji dwóch komputerów lub synchronizacji podkatalogów (takich jak tworzenie kopii zapasowych na dysku USB).
Jak wspomniano wcześniej w jednym z innych postów, „suma kontrolna” może faktycznie zostać WYŁĄCZONA, jeśli masz do czynienia z dyskami lokalnymi.
W niektórych rzadkich przypadkach musiałem dodać dodatkowe parametry, aby uwzględnić zmiany w kontach logowania na zdalnych komputerach, zmianę portów, a nawet określenie, gdzie „rsync” mieszka na zdalnym hoście ... ale nie mają one bezpośredniego zastosowania do twojego pytanie.
źródło
rsync -gloptrunc --delete --delete-excluded $srcdir $dstdir
.--delete
Mówi usunąć coś w okolicy, który nie jest w źródle, a--delete-excluded
mówi się również usuwać wykluczone pliki w miejscu docelowym, które normalnie nie są śledzone lub skopiowane. Jeśli używasz--delete-excluded
, technicznie nie musisz go również używać--delete
, ale i tak możesz używać obu z nich. Szczegóły znajdują się na stronach podręcznika : linux.die.net/man/1/rsync .Nie jest to konieczne, możesz używać rsync bez żadnych demonów lub innej konfiguracji JUST FINE!
Wystarczy użyć polecenia rsync i możesz zacząć.
źródło
Sądząc po ścieżce w poleceniu rsync, czy miałbym rację sądząc, że używasz systemu Mac OS X?
Osobiście wolałbym używać Time Machine (jeśli używasz Leoparda) lub Carbon Copy Cloner ( http://www.bombich.com/software/ccc.html ), który używa rsync.
Znacznie łatwiejsze niż poprawianie własnego skryptu. Jedną z zalet jest to, że Time Machine i CCC zapewniają przyrostowe kopie zapasowe.
źródło
Użyty przykład wygląda na to, że będzie działał dobrze w przypadku kopii zapasowych.
Jedną z rzeczy, które warto rozważyć podczas korzystania z rsync, jest skorzystanie z opcji --link-dest. Umożliwia to przechowywanie wielu kopii zapasowych, ale używanie twardych łączy do niezmienionych plików, skutecznie powodując, że wszystkie kopie zapasowe zajmują miejsce przyrostowe. Przykładem może być:
Zakłada się, że masz datowaną kopię zapasową na 12 czerwca i chcesz utworzyć nową kopię 13 czerwca. Możesz pominąć opcję -v, jeśli nie chcesz wydrukować każdego pliku.
źródło
To zależy od tego, czy korzystasz z baz danych, czy nie. Rsync pobierze migawkę każdego pliku i zignoruje wszelkie interweniujące zapisy. Jeśli chcesz wykonać kopię zapasową bazy danych, powinieneś rozważyć skonfigurowanie filtra ignorowania i uruchomienie narzędzi zrzutu DB przed rsync.
źródło
Twoje polecenie w formie pisemnej powinno działać, ale możesz chcieć spojrzeć na program o nazwie rsnapshot, który jest zbudowany na rsync i przechowuje wiele wersji plików, abyś mógł wrócić i spojrzeć na to, co było w zeszłym tygodniu lub w zeszłym miesiącu. Konfiguracja jest dość łatwa i bardzo dobrze optymalizuje przestrzeń, więc jeśli nie masz dużo rezygnacji, nie zajmuje ona dużo więcej miejsca niż pojedyncza kopia zapasowa.
źródło
Nie wspomniałeś o swoim systemie operacyjnym. Przyjmując założenie, że jest to system operacyjny oparty na * nix, twoje polecenie jest dobre.
Jeśli jednak jeden lub oba dyski są sformatowane w systemie NTFS, dostęp do nich jest uzyskiwany z * nix lub nawet z poziomu systemu Windows za pomocą Mobaxterm / cygwin, wówczas funkcja przyrostowa rsync nie działałaby dobrze z
rsync -a (archive flag)
Jeśli dyski NTFS są / są zaangażowane, możesz użyć:
Pobierz klienta sob Mobaxterm, aby mieć funkcjonalność rsync w systemie Windows.
Oto więcej informacji na temat używania rsync z dyskami NTFS
źródło
Próbowałem użyć rsync do tworzenia kopii zapasowych, ale skończyło się to bałaganem. rsync lepiej nadaje się do „synchronizacji” niż do tworzenia kopii zapasowych. Porównywanie dużych plików trwa wieczność.
Przeszukałem trochę i wypróbowałem kilka (w zasadzie testuję wszystkich z kopii zapasowej wyszukiwania apt-cache w Ubuntu).
Wreszcie skończyłem z „ backup2l - bezobsługowym narzędziem do tworzenia kopii zapasowych / przywracania”, to proste. Podoba mi się sposób, w jaki zarządza planowaniem i rotacją (w poziomach). Uruchamiam go za każdym razem, gdy mam zewnętrzny dysk USB podłączony z wiersza poleceń, ale można go również zautomatyzować.
źródło
Spróbuj wykonać kopię zapasową w programie dirvish. http://www.dirvish.org/
Wykorzystuje twarde linki z rsync w tak zwanych skarbcach. Możesz zachować tyle starszych zrzutów, ile może pomieścić dysk USB. Lub skonfiguruj to w sposób zautomatyzowany.
Kiedy zrozumiesz pomysł na dirvish, korzystanie z niego będzie wygodniejsze niż rsync ze wszystkimi jego opcjami.
źródło
Znajduję rozwiązanie dla komputera z systemem Windows: http://www.itefix.no/i2/node/10650
Aby skopiować partycję D: \ na dysk zewnętrzny K: \
rsync -aE --delete --progress /cygdrive/d/* /cygdrive/k
źródło