Chcę wykonać kopię zapasową mojego katalogu domowego na dysk zewnętrzny co noc przy użyciu cron
zadania do wykonania rsync
. Nie jestem pewien dokładnego zachowania rsync
flag symbolicznych linków.
rsync
„s-a
flag zawiera-l
flagę (czyli "Symlinks Kopiuj jako dowiązania"). Czy to oznacza tylko, że skopiuje link lub że będzie podążał za linkiem i kopiował wszystko w katalogu linku do? Chcę tego uniknąć, ponieważ mam linki do katalogów pełnych plików multimedialnych, które wymagałyby kopiowania setek gigabajtów, których nie muszę tworzyć kopii zapasowej.- Bojąc się (ale nie
rsync -a
jestem pewien), że skopiuje wszystkie te pliki multimedialne, zamiast tego dodałem--no-links
flagę. To nie wydaje się zachowanie, którego chcę. Po prostu ignoruje kopiowanie jakiegokolwiek linku, który jest problematyczny, ponieważ mam linki, które chcę skopiować (np. Linki do wspólnych plików nagłówkowych z różnych katalogów projektu). - Zakładając, że nr 1 powyżej (bez
--no-links
flagi) jest tym, czego naprawdę chcę i po prostu kopiuje link bez kopiowania plików połączonych, czy linki się zepsują podczas tworzenia kopii zapasowej? Na przykład mogęrsync
źródłowy katalog/home/me/projects/misc
do/media/extdrive/backup/home/me/projects/misc
. W tym przypadku zakładam, żersync
nie jest wystarczająco mądry, ani nie próbuje poprawić zawartości dowiązań symbolicznych dla względnych zmian katalogu. Czy to jest poprawne? Jest to w porządku, nie ma znaczenia, czy łącza są uszkodzone w katalogach kopii zapasowych, o ile zostaną naprawione i będą działać, jeśli nadejdzie taki czas, kiedy trzeba je przywrócić.
linux
rsync
symbolic-link
Sean
źródło
źródło
Odpowiedzi:
„Kopiuj dowiązania symboliczne jako dowiązania symboliczne” oznacza dokładnie to, co mówi: Jeśli rsync zobaczy dowiązanie symboliczne w katalogu źródłowym, utworzy identyczne dowiązanie symboliczne w miejscu docelowym. Nic więcej.
(Kilka wierszy w dół na stronie podręcznika, inna opcja,
--copy-links
opisuje przeciwne zachowanie (zawsze kopiowanie danych), które opisałeś jako niepożądane.)Zobacz także sekcję „Linki symboliczne”:
Nie jest to pożądane zachowanie, ponieważ źle interpretujesz, co się
--links
dzieje, i dlatego pytasz o niewłaściwe zachowanie (patrz odpowiedź nr 1).Domyślnie dokładnie kopiuje miejsce docelowe .
Oznacza to, że jeśli link wskazywałby na ścieżkę bezwzględną (np.
/home/me/projects
), Będzie nadal wskazywał tę samą ścieżkę; nie zepsuje się , po prostu nadal będzie wskazywać plik w katalogu domowym, a nie plik w kopii zapasowej.Tymczasem, jeśli link wskazał na ścieżkę względną (np
../../projects
), to będzie również kontynuować wskazując na tej samej ścieżce, ale ponieważ jest to w stosunku do lokalizacji dowiązania, w dowiązanie w kopii zapasowej zostaną również skierowaną do pliku kopii zapasowej.Niestety wydaje się, że nie ma żadnej opcji tłumaczenia absolutnych dowiązań symbolicznych dla ich nowej bazy (tylko opcja całkowitego ich złamania). Aby uniknąć problemów, powinieneś zmienić istniejące dowiązania symboliczne na względne (co jest ogólnie dobrym pomysłem dla linków wewnątrz $ HOME).
źródło
--copy-links
i--links
?--copy-links
=-L
i--links
=-l
. Zobacz opis z dokumentacji w mojej odpowiedzi tutaj: superuser.com/a/1388910/425838@grawity ma świetną odpowiedź, ale oto zrzut ekranu niektórych istotnych informacji z dokumentacji. Oto dokładne sformułowanie opcji
-l
i-L
, na przykład, które wydają się najbardziej odpowiednie, o których mowa:Źródło: https://linux.die.net/man/1/rsync lub
man rsync
strony podręcznika w systemie Linux.Zauważ też, że opcja
-a
(--archive
) zawiera również-l
opcję, która jest niesamowita, ponieważ naprawdę lubię tę-l
opcję, aby zachować moje dowiązania symboliczne ze źródła jako dowiązania symboliczne w miejscu docelowym. Ze stron podręcznika:Uwaga: moje ulubione
rsync
polecenia i instrukcje, w tym kopiowanie, tworzenie kopii lustrzanych, pokazywanie całkowitego postępu ...... robiąc suche przebiegi, rejestrując stderr i stdout do (osobnych) plików, pokazując statystyki, używając pliku ścieżki włączającej i pliku wykluczającego itp., zobacz moją pełną odpowiedź tutaj w drugiej sekcji, zatytułowanej " 2. rsync Wiersz poleceń narzędzie (Linux, Windows z Cygwin) ”: https://superuser.com/a/1464264/425838
źródło