Korzystam z polecenia rsync, aby przenieść kopię zapasową plików z jednego serwera Ubuntu na inny komputer Ubuntu. Serwer zapasowy wyzwala skrypt korzystający z polecenia rysnc. Oto polecenie, którego używam
rsync -rltvh --partial --stats --exclude = .beagle / --exclude =. * --delete-after root @ live_server: / home / / home / live_server_backup / home >> /tmp/logfile.log 2> I 1
live_server jest w stanie ssh bez hasła. Więc to działa. Teraz jest problem z
- opcja usuwania po
Po zsynchronizowaniu wszystkich plików. Na końcu widzę pominiętą procedurę usuwania. Błąd pliku dziennika jest podobny
Napotkano błąd We / Wy - pomijanie usunięcia pliku
Podczas próby znalezienia dziennika wystąpił błąd podczas synchronizacji pliku
rsync: nie można otworzyć plików send_files „/home/xyz/Desktop/PPT_session_1_context.pdf”: Odmowa uprawnień (13)
Rozumiem więc, że rsync nie mógł odczytać wszystkich plików z celu ze względów bezpieczeństwa, dlatego pomija usuwanie plików.
Czy jest jakiś sposób, aby --delete-after work, nawet jeśli wystąpił błąd uprawnień? Nie chcę używać wymuszonego usuwania, ponieważ w niektórych sytuacjach będzie to niebezpieczne.
źródło
Odpowiedzi:
Dodatkowa uwaga na ten temat:
vanished file
nie powinien wyzwalać warunkuIO error encountered -- skipping file deletion
, ale często dzieje się tak podczas tworzenia kopii zapasowej systemu na żywo.Jest to objęte błędem rsync # 7809 ( https://bugzilla.samba.org/show_bug.cgi?id=7809 ) i powinno zostać rozwiązane w nadchodzącej wersji 3.1.0.
W międzyczasie użyj:
źródło
Ze strony man rsync:
To rozwiąże twój problem.
źródło
Należy użyć pliku wykluczenia, aby
rsync
zignorować pliki, których nie można odczytać. Listę można wygenerowaćfind . -exec test -r '{}'
w katalogu źródłowym, a następnie wmasować w żądany format pliku wykluczeniarsync
.źródło