Więc teraz używam rsync do synchronizacji plików z serwerem. Czasami pliki na serwerze są usuwane (wiem o tej --delete
opcji i nie korzystam z niej) i te pliki są pozostawiane w moim katalogu lokalnym, aby później je wyczyścić.
Niestety wymaga to ode mnie pobrania listy plików na serwerze, stwierdzenia, których plików już nie ma na serwerze, i przeniesienia ich do innego katalogu lokalnego.
Chcę jakoś zautomatyzować ten proces. Nie wiem, czy taka opcja istnieje w rsync, ale zadowoliłbym się czymkolwiek, o ile zautomatyzowałoby to powtarzalne zadanie.
Czy ktoś wie, jak można to osiągnąć?
Odpowiedzi:
Zrozumiałem to sam. Rozwiązaniem jest zamontowanie katalogu SFTP z serwera w katalogu lokalnym za pomocą,
sshfs
a następnie użyjdiff
. Dla tych, którzy chcą skorzystać z tego obejścia, można znaleźć wskazówki tutaj: http://blog.damontimm.com/how-to-mount-a-sftp-folder-ssh-ftp-on-ubuntu-linux-using-sshfs- fuse / i tutaj: http://linuxcommando.blogspot.com/2008/05/compare-directories-using-diff-in-linux.html Pamiętaj tylko, aby użyć tej-o allow_other
opcji z sshfs, w przeciwnym razie będziesz mieć problemy z uprawnieniami do plików .źródło
--link-dest
? Nigdy go nie używałem i za każdym razem musisz napisać skrypt, aby utworzyć nowy katalog, ale to załatwi sprawę. Wygląda na mniej przyjazny dla użytkownika niż wehikuł czasu: superuser.com/questions/441522/…Znalazłem możliwe rozwiązanie, ale musisz uruchomić rsync dwa razy.
W pierwszym uruchomieniu skopiuj nowe i zmienione pliki, takie jak:
W drugim uruchomieniu usuń i przenieś pliki:
Zauważ, że --backup-dir może być absolutny.
źródło