Pracuję nad rsync
skryptem do replikacji katalogu. Synchronizuję tylko nowe i zmodyfikowane pliki lub katalogi, ale nie podoba mi się to, że kopiuje pliki lub katalogi o zmienionych nazwach jako nowy plik lub katalog, co powoduje, że pliki nie są zsynchronizowane. Ustawiłem również limit przepustowości 1 MB, ponieważ będzie on działać w godzinach pracy. Oto mój skrypt:
rsync -zvru --bwlimit=1024 /mymounts/test1/ /mymounts/test2
Jak mogę zsynchronizować pliki i katalogi, jeśli ktoś coś zmieni nazwę, nadal kopiując tylko nowe lub zmodyfikowane pliki? Oto pliki, o których mowa
ls "/mymounts/test1/some stuff"
new directory newfile1.txt newfile3.txt renamedFile.txt
ls "/mymounts/test2/some stuff"
new directory newfile1.txt newfile2.txt newfile3.txt renamedFile.txt
Czy byłby sposób na przeniesienie plików o zmienionych nazwach do innego katalogu, powiedz
/mymounts/VerControl
:?
rsync
artykułu, FWIW. everythinglinux.org/rsyncMożesz spojrzeć na
-y | --fuzzy
opcję rsync. Poza tym rsync nie ma możliwości śledzenia zmian nazw, więc ostatecznie przeniesiesz plik o zmienionej nazwie.Ze strony rsync:
źródło
--fuzzy
, powinieneś rozważyć połączenie go--delete-delay
, ponieważ „rsync domyślnie robi a--delete-before
, usuwając w ten sposób plik podstawowy, zanim będzie można go skopiować / przenieść” . Źródło: Sonia HamiltonNie możesz
Rsync ma trzy tryby,
Jednak te trzy tryby mają dwie podkategorie,
Rsync nie śledzi nazw plików, nie ma stanu. Zamiast tego rozważ skopiowanie wszystkich plików i wykluczenie tych, których nie chcesz. Nie możesz mieć ruchomej białej listy, możesz mieć czarną listę.
źródło
date +%Y%m%d%k%M%S
tak mogę uzyskać sufiks =date +%Y%m%d%k%M%S
.ORIGINALSUFFIX?O ile mi wiadomo,Zobacz odpowiedź artyoma .rsync
nie mogę rozpoznać zmiany nazw plików Nowe pliki będą musiały zostać ponownie przesłane.Aby usunąć utracone pliki, użyj
--delete
opcji.Ponadto do tworzenia kopii lustrzanych polecam użycie
-a
( archiwum ), które aliasuje kilka fajnych opcji.Zobacz
man 1 rsync
szczegóły.źródło