rsync kopiuje tylko nowe pliki, brak aktualizacji?

10

Chciałbym użyć rsync do skopiowania plików ze zdalnego serwera. chciałbym

  • kopiuj tylko pliki z serwera, nie wypychaj ich z powrotem.
  • kopiuj pliki, które nie istnieją. Jeśli plik zdalny jest nowszy , nie chcę go kopiować
  • mieć to automatycznie. To monituje mnie o hasło za każdym razem i chciałbym, aby było uruchamiane przez crona. Jak więc uruchomić go w skrypcie bash wykonywanym przez crona?
isaaclw
źródło
Aby „mieć to automatycznie”, --password-fileopcja podaje hasło do monitu serwera. Plik powinien po prostu zawierać hasło w postaci zwykłego tekstu i nie zezwalać innym użytkownikom na dostęp do odczytu.
altmas5

Odpowiedzi:

5

Punkty 1 i 2: Jak określić, co skopiować, najlepiej odpowiedzieć na stronie podręcznika rsync . W twoim przypadku spójrz zwłaszcza na istniejącą flagę --ignore.

Punkt 3: Ten samouczek powinien zacząć używać bezhasłowego ssh z rsync. Podsumowanie: skonfiguruj ssh bez hasła i użyj „-e ssh”, aby powiedzieć rsync, aby użył ssh zamiast rsh do połączenia ze zdalnym hostem.

pjz
źródło
Spojrzałem na mężczyznę i nie mogę dowiedzieć się, co pozwoli mi kopiować tylko nowe pliki, a nie aktualizować.
1

W drugiej części, ponieważ pjz odpowiedział na resztę, uważam, że możesz użyć przełącznika --ignore-istniejących, aby uzyskać tylko nowe pliki.

From http://www.samba.org/ftp/rsync/rsync.html :

Mówi to rsync, aby pomijało aktualizację plików, które już istnieją w miejscu docelowym (nie ignoruje to istniejących katalogów, ani nic nie da się zrobić). Zobacz także - istniejący. Ta opcja jest regułą przesyłania, a nie wykluczeniem, więc nie wpływa na dane, które trafiają na listy plików, a zatem nie wpływa na usuwanie. Po prostu ogranicza pliki, które odbiorca żąda przesłania.

Ta opcja może być przydatna dla osób wykonujących kopie zapasowe za pomocą opcji --link-dest, gdy potrzebują kontynuować przerwane tworzenie kopii zapasowej. Ponieważ uruchomienie --link-dest jest kopiowane do nowej hierarchii katalogów (gdy jest właściwie używane), użycie --ignore Istniejące zapewni, że już obsługiwane pliki nie zostaną poprawione (co pozwala uniknąć zmiany uprawnień w pliki połączone). Oznacza to, że ta opcja sprawdza tylko istniejące pliki w samej hierarchii docelowej.

runlevelsix
źródło