27Jun
Rsync jest jednym z najbardziej użytecznych narzędzi dla administratora serwera, ale synchronizuje on wszystko, co domyślnie, co może być denerwujące, jeśli twoja aplikacja tworzy dużo plików tymczasowych. Oto, jak wykluczyć pliki przy użyciu rsync.
Wyłączenie z listy w pliku
Jest to idealna metoda wykluczania plików i folderów, ponieważ zawsze możesz edytować listę i zmieniać elementy, jeśli to konieczne. Oto składnia:
rsync --exclude-from = /path/to/ plik wykluczający /path/to/ source /path/to/ destTrudną rzeczą z rsync jest to, że musisz użyć względnej ścieżki, gdy próbujesz wykluczyć rzeczy, ponieważ kiedy próbujedopasuj wykluczenia, nie użyje pierwszej części ścieżki do meczu. .. to dziwne.
Powiedz na przykład, że próbujesz wykonać kopię zapasową /data/web/ i wysłać ją na inny serwer, więc do jej wykonania użyjesz komendy, takiej jak rsync -a /data/web/ użytkownik @ serwer: /backups/data/web/. .. ale naprawdę chcesz pominąć synchronizację /data/web/cache/teczka. Kiedy rsync przejdzie do sprawdzenia twojej listy wykluczeń dla każdego zsynchronizowanego elementu, to nie sprawdzi /data/web/cache/, ponieważ twoje oryginalne polecenie rsync jest oparte na folderze /data/web/.Po prostu sprawdzi "cache /" na liście. Musisz więc umieścić "cache" na liście, a nie pełną ścieżkę.Przykład:
rsync -a --exclude-from = /data/ wykluczenia /data/web/ /backups/Teraz, aby wykluczyć pamięć podręczną /data/web/ i /data/web/ z rsync za pomocą tego polecenia, usunęlibyśmy część /data/web/ ścieżki, a plik wykluczeń /data/ po prostu zawierałby to:
cache * temp *Zauważysz, że dodałem * do ścieżki, aby upewnić się, że pasuje do wszystkiego, co zaczyna się od "cache" na początku. Możesz użyć tego wzoru gwiazdy z bardziej przydatnych powodów, jeśli chcesz - powiedz, że chcesz wykluczyć wszystkie pliki. txt zsynchronizowane. Zaczniesz wzór z gwiazdą, aby upewnić się, że zawsze pasuje i dodaj to:
*. txtZapewniłoby to pominięcie tych typów plików podczas synchronizacji. Poza tym jest to całkiem proste.
Wyłączenie pojedynczego przedmiotu
Ta technika jest znacznie mniej przydatna, ale możesz jej użyć w razie potrzeby. Jeśli konfigurujesz skrypt, aby używać rsync, który zwykle jest, powinieneś poświęcić dodatkową minutę, aby wykluczyć z listy plików, aby ułatwić przyszłą konserwację.Składnia jest bardzo podobna:
rsync --exclude = relative /path/to/ exclusion / source / destTa sama relatywna ścieżka powinna mieć tutaj zastosowanie jak powyżej.