If-Koubou

Jak wykluczyć pliki z Rsync

Jak wykluczyć pliki z Rsync (Jak)

Rsync jest jednym z najbardziej użytecznych narzędzi dla administratora serwera, ale jest zsynchronizowanywszystko 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.

Wykluczanie z listy w pliku

Jest to idealna metoda wykluczania plików i folderów, ponieważ zawsze można edytować listę i zmieniać elementy, jeśli to konieczne. Oto składnia:

rsync --exclude-from = / path / to / exclusion-file / path / to / source / path / to / dest

Problem z rsync polega na tym, że podczas próby wykluczenia musisz użyć ścieżki względnej, ponieważ gdy spróbujesz dopasować wykluczenia, nie użyjesz pierwszej części ścieżki do meczu ... to dziwne.

Powiedzmy na przykład, że próbujesz wykonać kopię zapasową / dane / sieć / i wysłać ją na inny serwer, więc użyjesz polecenia, takiego jak rsync -a / data / web / user @ server: / backups / data / web /, aby to zrobić się zdarza ... ale naprawdę chcesz pominąć synchronizację / data / web / cache / folderu. Kiedy rsync przejdzie do sprawdzenia twojej listy wykluczeń dla każdego przedmiotu, który zsynchronizuje, to nie sprawdzi / danych / sieci / pamięci podręcznej /, 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 / exclusions / data / web / / backups /

Teraz, aby wykluczyć / dane / web / cache i / data / web / temp z rsync za pomocą tego polecenia, usunęlibyśmy / data / web / część ścieżki, a plik / data / exclusions zawierałby to po prostu:

bufor * temp *

Zauważysz, że dodałem * do ścieżki, aby upewnić się, że pasuje do wszystkiego, co zaczyna się od "pamięci podręcznej" 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:

*.tekst

Zapewni to, że te typy plików będą pomijane podczas synchronizacji. Poza tym jest to całkiem proste.

Z wyłączeniem pojedynczego przedmiotu

Ta technika jest znacznie mniej użyteczna, ale możesz jej użyć w locie, jeśli potrzebujesz. 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 / dest

Ta sama względna ścieżka powinna mieć zastosowanie tutaj, jak powyżej.