Powiązane z tym pytaniem
Krótki opis problemu:
Gdy drzewo źródłowe ma zamontowany punkt w środku, znaczniki czasu na plikach wewnątrz tego zamontowanego punktu po skopiowaniu do drzewa docelowego nie są zachowywane, nawet przy użyciu -a
opcji
Szczegółowy opis:
Załóżmy, że to drzewo źródłowe:
/home/ /home/
| |
me/ BACKUP/
| |
+----+----------+ +----+-------+
| | | | | |
data/ foo.txt boo.txt data/ foo.txt boo.txt
| |
a.txt a.txt
gdzie data/
powyżej jest zamontowany zewnętrzny dysk USB. Wszystko jest ext4
systemem plików. Wszystko w źródle jest własnością mojej me
.
BACKUP
okazało się również, że jest to punkt montowania, zapasowy dysk USB.
Po wydaniu tego polecenia rsync -av --delete /home/me/ /home/BACKUP/
znalazłem, że /home/BACKUP/data/
i wszystko pod nim ma bieżący znacznik czasu, tak jakby te pliki zostały teraz utworzone, a nie znacznik czasu na plikach w /home/me/data/
. Inne pliki i foldery na zewnątrz data
miały zachowany znacznik czasu OK.
Pytanie brzmi: jak użyć rsync
w powyższym ustawieniu, aby zachować znaczniki czasu na wszystkich plikach i folderach, nawet na plikach i folderach w zamontowanym punkcie?
Ja używam:
>uname -a
Linux 3.5.0-17-generic #28-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux
>rsync -v
rsync version 3.0.9 protocol version 30
-a
, który mówi:archive mode; equals -rlptgoD
dla nich-t
jest już włączone.ls -l
pliku. Działa to na plikach, które nie znajdują się w punkcie montowania. Ale wszystkie pliki, które znajdują się w punkcie montowania, mają na sobie znacznik czasu wskazujący, że zostały właśnie utworzone. Jak nazwiesz tym razem. Chciałem tylko, aby używał tego samego znacznika czasu na plikach w źródle. Teraz tak nie jest. Chcę, aby wszystkie aspekty czasu zostały skopiowane. tzn. zostanie utworzony klon pliku. czas tworzenia, zmiana czasu itp.ls -l
pokazuje mtime (modyfikuj) nie ctimejak już powiedział hr3miller, -a (lub --archive) jest równe -rlptgoD i zawiera już czas synchronizacji.
Jednak gdy rsync kopiuje dane, np. w przypadku montowania NFS / FAT32 / NTFS, w którym nie powiodło się zachowanie użytkownika i właściciela, rsync nie będzie próbował ustawić czasu. Rsync ostrzeże coś podobnego
Dlatego pomiń zachowanie użytkownika i grupy za pomocą
zamiast
Używaj tego tylko wtedy, gdy nie zachowujesz właściciela, a grupa jest dla Ciebie opcją. Pamiętaj, że zachowanie dowiązań symbolicznych i innych funkcji może również wywołać to zachowanie. Będziesz musiał przejść przez stronę podręcznika dla każdej funkcji rsync (-r -l -p -t -g -o -D), którą chcesz wykonać kopię zapasową.
źródło
Używam
rsync -az
i jestem pewien, że oszczędza mi to czas modyfikacji. Teraz dokładnie to sprawdziłem.źródło
-a
(--archive
) obejmuje-t
.