Zasadniczo szukam, czy istnieje narzędzie lub skrypt, który może wykryć przeniesione lub zmienione nazwy plików, dzięki czemu mogę uzyskać listę przemianowanych / przeniesionych plików i zastosować tę samą operację na drugim końcu sieci, aby zaoszczędzić na przepustowości.
Zasadniczo miejsce na dysku jest tanie, ale przepustowość nie, a problemem jest to, że pliki często zostaną zreorganizowane lub przeniesione do lepszej struktury katalogów, dlatego gdy używasz rsync do tworzenia kopii zapasowych, rsync nie zauważy, że zmieniono jego nazwę lub przeniesiono plik i ponownie przesłano go przez sieć, mimo że ten sam plik znajduje się na drugim końcu.
Zastanawiam się więc, czy istnieje skrypt lub narzędzie, które może rejestrować, gdzie znajdują się wszystkie pliki i ich nazwy, a następnie tuż przed utworzeniem kopii zapasowej przeskanowałoby i wykryło przeniesione lub zmienione nazwy plików, a następnie mogę pobrać tę listę i ponownie zastosować operacja przenoszenia / zmiany nazwy po drugiej stronie.
Oto lista „ogólnych” funkcji plików:
- Duże niezmienne pliki
- Można je zmienić lub zmienić
[Edytuj:] To są dobre odpowiedzi, a tym, co ostatecznie zrobiłem, było przeanalizowanie wszystkich odpowiedzi i napisanie kodu, aby sobie z tym poradzić. Zasadniczo myślę / pracuję teraz nad:
- Użycie czegoś takiego jak AIDE do „początkowego” skanowania i umożliwienie mi zachowania sum kontrolnych na plikach, ponieważ powinny one nigdy się nie zmieniać, więc pomogłoby to w wykryciu uszkodzenia.
- Tworzenie demona inotify, który monitorowałby te pliki / katalog i rejestrował wszelkie zmiany związane z zmianą nazw i przenoszeniem plików do pliku dziennika.
- Istnieją pewne przypadki krawędzi, w których inotify może nie zarejestrować, że coś się stało z systemem plików, dlatego jest ostatni krok przy użyciu funkcji find do przeszukiwania systemu plików w poszukiwaniu plików, których czas zmiany jest dłuższy niż ostatnia kopia zapasowa .
Ma to kilka zalet:
- Sumy kontrolne / etc z AIDE, aby móc sprawdzić / upewnić się, że niektóre media nie uległy uszkodzeniu
- Inotify utrzymuje niskie zużycie zasobów i nie ma potrzeby ponownego skanowania systemu plików w kółko
- Nie ma potrzeby łatania rsync; Jeśli muszę łatać rzeczy, mogę, ale wolałbym unikać łatania rzeczy, aby zmniejszyć obciążenie (IE nie musi ponownie łatać za każdym razem, gdy jest aktualizacja).
- Używałem wcześniej Unisona i jest naprawdę fajny, ale mógłbym przysiąc, że Unison zachowuje kopie w systemie plików i że jego pliki „archiwalne” mogą być dość duże?