Główna » jak » Jak wykluczyć pliki z Rsync

    Jak wykluczyć pliki z Rsync

    Rsync jest jednym z najbardziej użytecznych narzędzi dla administratora serwera, ale jest zsynchronizowany wszystko 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żesz 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 musisz użyć ścieżki względnej, gdy próbujesz wykluczyć pewne rzeczy, ponieważ gdy spróbujesz dopasować wykluczenia, nie użyjesz pierwszej części ścieżki do meczu ... to jest dziwne.

    Załóżmy 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 zsynchronizowanego elementu, nie sprawdzi to / data / web / cache /, ponieważ twoje oryginalne polecenie rsync jest oparte na folderze / data / web /. To 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. Zaczynasz wzorzec z gwiazdką, 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 przydatna, 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.