Czy rsync to dobry wybór dla mojego projektu?
Muszę:
- skopiować pliki ze źródła do folderu docelowego przez SSH,
- upewnić się, że wszystkie pliki zostały skopiowane,
- usunąć pliki źródłowe po skopiowaniu.
- jeśli mam konflikt nazwy, muszę zmienić nazwę plików.
Wygląda na to, że mogę użyć opcji: --remove-source-files (aby usunąć pliki źródłowe)
Ale jak rsync zarządza konfliktem, czy mogę mieć reguły?
Przypadek użycia w moim projekcie:
Przeprowadzam obliczenia naukowe na serwerze A, a wyniki są wstawiane do folderu „proces”, do każdego obliczenia mam repozytorium takie jak to: / process / calc1.
Teraz chciałbym przenieść repozytorium „/ calc1” na serwer B (otrzymuję / process / calc1) i usunąć „calc1” z serwera A.
... Podczas kolejnego obliczenia otrzymuję „/ process / calc2” na serwerze A, pomysł polega także na przeniesieniu „calc2” do katalogu „/ process /” na serwerze B, a następnie mam teraz na serwerze B:
- / process / calc1
- / process / calc2
(i / process / na serwerze A jest pusty).
Jak rsync poradzi sobie z konfliktem (na serwerze B), jeśli po nowym obliczeniu mam inny folder, taki jak „/ process / calc1” na serwerze A (jeśli „/ process / calc1” już istnieje na serwerze B)?
Czy można dodać reguły za pomocą rsync i zmienić nazwę „/ process / calc1” na „process / calc1R2” na serwerze B? I tak dalej (np .: calc1R3)?
Dzięki.
źródło
Jak sama nazwa wskazuje, rsync służy do synchronizacji plików. Po „zsynchronizowaniu” oznacza to, że pliki źródłowe i docelowe są takie same. To nie wygląda tak, jak chcesz.
Wygląda na to, że chcesz tylko przenieść niektóre pliki. Nie musisz do tego używać rsync. Wygląda na to, że używasz Linuksa lub BSD. Możesz użyć mv -n przez ssh. Opcja -n nie zastępuje istniejących plików. To nie jest w 100% automatyczne. Jednak nie widzę, jak plik mógł już istnieć w twoim przypadku. Pliki zostaną skopiowane ze źródła do miejsca docelowego, a następnie usunięte ze źródła. Czy chcesz ponownie uruchomić te same obliczenia? Czy to dlatego skończysz z plikami o tej samej nazwie? Sugeruję dodanie numeru uruchomienia lub numeru partii do nazwy folderu. I tak byś chciał. Czy masz kontrolę nad nazwą tego folderu? Więcej informacji? Polecam umieszczanie poleceń w skrypcie bash lub podobnym.
źródło
Podsumowując, użyj SSH:
Wszystko zostało wyjaśnione w rsync (1).
Jeśli chodzi o tworzenie skryptów dla pracy z kronikami, aby automatycznie rsyncować ssh bez konieczności podawania hasła, zajrzyj również do ssh-agent (1).
źródło