Lustro rsync kopiuje przypadkowe usunięcia, ponieważ lustro ma na celu dopasowanie miejsca docelowego do aktualnego źródła. Gdy zadanie używa --delete lub powiązaną opcją usuwania, plik brakujący w domowym NAS jest traktowany jako dodatkowy plik na miejscu kopii zapasowej i jest usuwany podczas synchronizacji. To zachowanie jest poprawne dla lustra, ale niebezpieczne jako jedyna historia odzyskiwania.
Rsync podąża za regułą lustra, a nie zachowuje każdą poprzednią wersję
Bez opcji usuwania rsync normalnie kopiuje nowe i zmienione pliki, ale pozostawia pliki występujące tylko w miejscu docelowym. Z --delete miejsce docelowe jest uzgadniane ze źródłem. Zwięzłe wyjaśnienie flagi mówi, że usunięcie pliku ze źródła usuwa go również z miejsca docelowego, dzięki czemu miejsce docelowe pozostaje prawdziwym lustrem.
Dla domowego NAS ZimaSpace oznacza to usunięte rodzinne zdjęcie, zmieniony folder mediów, usuniętą konfigurację kontenera lub tymczasowo brakujący montaż, co może zostać odzwierciedlone na USB lub zdalnym lustrze przy następnym zaplanowanym uruchomieniu.
Usuwanie zaczyna się od brakującej ścieżki źródłowej
Rsync nie wie, czy plik zniknął, ponieważ celowo go usunąłeś, aplikacja go wyczyściła, użytkownik popełnił błąd, ransomware zmienił drzewo lub zestaw źródłowy nie został zamontowany. Porównuje widoczne drzewo źródłowe z drzewem docelowym. Jeśli obiekt istnieje tylko po stronie odbiorcy i usuwanie jest włączone, staje się kandydatem do usunięcia.
| Zdarzenie źródłowe | Co widzi rsync | Wynik lustra z włączonym usuwaniem |
|---|---|---|
| Użytkownik usuwa folder ze zdjęciami | Folder nieobecny w źródle | Folder usunięty z lustra |
| Aplikacja kontenera usuwa stare media | Pliki nieobecne w ścieżce danych aplikacji | Pliki usunięte z lustra |
| Pula danych NAS nie może zostać zamontowana | Ścieżka źródłowa może wydawać się pusta | Może zostać zaproponowany duży zestaw do usunięcia |
| Zmiany ścieżki współdzielonej | Stare drzewo źródłowe nie jest już skanowane | Stara zawartość miejsca docelowego może zostać usunięta |
Czas usuwania zmienia moment usunięcia plików, a nie to, czy są usuwane
Powiązane opcje kontrolują fazę transferu. --delete-before usuwa pliki występujące tylko w miejscu docelowym przed kopiowaniem, --delete-during usuwa podczas przetwarzania katalogów, a --delete-after czeka, aż transfery się zakończą. Wpływają one na zachowanie wolnego miejsca i ryzyko błędów, ale nie zamieniają lustra w wersjonowaną kopię zapasową.
Używaj czasu usuwania celowo. Usuwanie przed transferem może zwolnić miejsce, ale wcześniej usuwa poprzedni stan lustrzany. Usuwanie po transferze zachowuje starszą zawartość docelową dłużej, ale ostateczny wynik nadal odpowiada źródłu, jeśli zadanie zostanie ukończone.
Brak montowania może wyglądać jak masowe usunięcie
Jednym z najniebezpieczniejszych przypadków na serwerze domowym jest sytuacja, gdy zaplanowana ścieżka źródłowa nadal istnieje jako pusty katalog po nieudanym montowaniu rzeczywistej puli pamięci masowej. Rsync może wtedy porównać pusty katalog źródłowy z zapełnionym miejscem docelowym. Proponowanym zabezpieczeniem jest uruchomienie suchego testu i policzenie planowanych usunięć przed pozwoleniem na rzeczywistą synchronizację.
Na domowym NAS ustaw, aby zadanie kończyło się niepowodzeniem, jeśli brakuje oczekiwanego montowania źródła, UUID systemu plików, katalogu wskaźnikowego lub minimalnej liczby plików. Nie pozwól, aby istnienie pustej ścieżki było traktowane jako zdrowe źródło.
Wstrzymaj zadanie przed próbą odzyskania usuniętego pliku
- Natychmiast wyłącz zaplanowane zadanie rsync.
- Nie uruchamiaj ponownie polecenia, aby „sprawdzić, czy samo się naprawi”.
- Sprawdź migawki, kosze, repozytoria kopii zapasowych z wersjonowaniem oraz drugą kopię offline.
- Jeśli lustro nadal zawiera plik, skopiuj go do ścieżki kwarantanny poza miejscem docelowym rsync przed kolejnym uruchomieniem.
- Potwierdź, czy usunięcie w źródle było zamierzone, zanim przywrócisz plik do aktywnego udziału.
Artykuł ZimaSpace o przechowywaniu rodzinnych zdjęć w wielu niezależnych kopiach jest tutaj istotny: zsynchronizowane lustro powinno być jedną warstwą, a nie jedynym miejscem, gdzie starszy plik może przetrwać.
Podgląd dokładnego zestawu usunięć
Uruchom to samo polecenie z --dry-run, szczegółowym wypisaniem zmian i raportowaniem usunięć. Sprawdź ścieżki źródłowe i docelowe, ukośniki na końcu, wykluczenia, stan montowania oraz liczbę planowanych usunięć. Niedawny artykuł o bezpieczeństwie rsync podkreśla, że lustro może odtworzyć przypadkowe usunięcie lub uszkodzenie przez ransomware i dlatego potrzebuje oddzielnej warstwy historii.
rsync -a --delete --dry-run --itemize-changes /srv/storage/family/ /mnt/usb-mirror/family/
Traktuj nieoczekiwanie dużą liczbę usunięć jako nieudaną kontrolę wstępną. Zatrzymaj się i zweryfikuj, czy zamontowany jest właściwy zestaw danych NAS oraz czy polecenie nie jest skierowane do katalogu nadrzędnego lub niewłaściwego dysku wymiennego.
Przenieś usunięte pliki docelowe do obszaru odzyskiwania
Jeśli potrzebujesz lustra, ale także krótkiego okna odzyskiwania, połącz usuwanie z katalogiem kopii zapasowej lub warstwą migawki. Rsync może przenosić zastąpione lub usunięte pliki miejsca docelowego do katalogu odzyskiwania z datą zamiast natychmiast je niszczyć. Wskazówki społeczności dotyczące zachowywania usuniętych danych rsync zalecają przechowywanie usuniętych plików w osobnej lokalizacji z własną polityką czyszczenia.
rsync -a --delete --backup --backup-dir="/mnt/usb-mirror/deleted/$(date +%F)" /srv/storage/family/ /mnt/usb-mirror/current/
Przetestuj polecenie najpierw na danych niekrytycznych. Katalog odzyskiwania musi znajdować się poza lustrzanym poddrzewem, inaczej przyszłe uruchomienie może potraktować go jako część źródła lub usunąć zgodnie z tą samą polityką.
Używaj wersjonowanych migawek, gdy ważne są stany z przeszłości
Aktualne lustro odpowiada na pytanie „jak teraz wygląda źródło?” Kopia zapasowa odpowiada na pytanie „jak wyglądało źródło przed błędem?” Jeśli potrzebujesz obu, zachowaj lustro dla szybkiego dostępu i dodaj migawki systemu plików, katalogi migawkowe z twardymi linkami, narzędzie do wersjonowanych kopii zapasowych lub drugi dysk offline.
Opis przypadkowego usunięcia przez rsync jasno pokazuje podstawową słabość: ręcznie zbudowany przepływ pracy rsync wymaga wyraźnych zabezpieczeń rotacji i usuwania. Nie polegaj na jednym zmiennym miejscu docelowym, które ma zapewniać zarówno dokładną synchronizację, jak i długoterminową historię.
FAQ
Jeśli usunę --delete, czy lustro staje się kopią zapasową?
Sama w sobie nie. Pliki istniejące tylko w miejscu docelowym pozostaną, ale nadpisane pliki mogą stracić poprzednią zawartość, a nie ma czystego punktu przywracania dla konkretnej daty. Dodaj migawki lub wersjonowane repozytorium kopii zapasowych.
Która opcja czasu usuwania jest najbezpieczniejsza?
--delete-after opóźnia usunięcia do zakończenia transferów, co pozwala dłużej zachować poprzedni stan miejsca docelowego podczas działania. Nadal usuwa pliki istniejące tylko w miejscu docelowym po zakończeniu, więc kontrole wstępne i historia wersji pozostają konieczne.
Jak zatrzymać nieoczekiwane masowe usunięcie?
Wyłącz harmonogram, uruchom próbę z wyświetleniem usunięć, zweryfikuj montowanie i ścieżkę źródła oraz ustaw próg liczby usunięć lub sprawdzenie pliku wskaźnikowego. Nie uruchamiaj ponownie polecenia na żywo, dopóki nie zrozumiesz proponowanej listy usunięć.
Ostateczne wnioski
Rsync odtwarza przypadkowe usunięcia, ponieważ opcje usuwania sprawiają, że miejsce docelowe kopii zapasowej odpowiada widocznemu źródłu NAS. Chroń przepływ pracy domowego serwera ZimaSpace, weryfikując montowania, podglądając usunięcia, kwarantannując usunięte pliki oraz zachowując wersjonowane lub offline punkty odzyskiwania. Lustro może być przydatne, ale dokładne lustro bez historii nie stanowi wystarczającej ochrony przed błędem ludzkim.
Wsparcie i wskazówki
Więcej do przeczytania

Czy Plex może współdzielić kartę graficzną z innym kontenerem Dockera?
Plex i inny kontener często mogą korzystać z tego samego układu GPU, ale należy przetestować obsługę sterowników, mapowanie urządzeń, obciążenie silnika wideo, pamięć oraz...

Jak ustalić, czy błąd Plex pochodzi od klienta, czy od serwera
Odtwórz ten sam przypadek na innym kliencie, porównaj ścieżkę sesji, a następnie zbierz dowody z serwera dopiero wtedy, gdy zakres analizy wskaże, gdzie faktycznie...

Jak skonfigurować pamięć podręczną Plex i tymczasową pamięć na transkodowane pliki
Chroń trwały stan Plex, umieszczając tymczasowe pliki transkodowania na odpowiedniej pamięci lokalnej, a następnie zweryfikuj czyszczenie, ilość wolnego miejsca i zachowanie podczas ponownego uruchamiania.

