Mam rsyncd na systemie_1 i tam wystawiony katalog
Na systemie_2 jest w cronie rsync który zbiera dane wystawione przez system_1.
Chciałbym aby w trakcie wykonywania kopii rsync usuwał pliki (ale tylko pliki a nie katalogi) które kopiuje - czyli innymi słowy aby nie kopiował plików a je przenosił.
Ale jak nadmieniłem ma nie ruszać struktury katalogów.
W podręczniku odnalazłem opcję --delete (before/after), ale nie bardzo o to mi chodzi.
I tak czytam i czytam te strony mam i jakoś nie widzę.
rsync - usuwanie plików
Przykładowo: masz katalog_1 i katalog_2, do którego robisz rsync-ki.
Teraz masz pliki w katalogu_1 o nazwach: plik1 plik2 plik3. Robisz rsync do katalogu_2 i masz dokładnie te same dane w obu katalogach.
Usuwasz z katalogu_1 plik2 i utworzysz plik4. Robisz rsync do katalogu_2 i zawartość tego katalogu będzie wyglądała: plik1 plik2 plik3 plik4 (tak plik2 nie został usunięty). Jeżeli użyjesz rsync-a z opcją --delete zostaną usunięte pliki z katalogu_2, które usunąłeś w katalogu_1.
Dlatego jeżeli dalej usuniesz plik1 i utworzysz plik5, a następnie zrobisz rsync --delete z katalogu_1 do katalogu_2, zawartośc katalogu_2 będzie miała dane: plik3 plik4 plik5 (pliki1 i plik2 zostały wcześniej usunięte)
Teraz masz pliki w katalogu_1 o nazwach: plik1 plik2 plik3. Robisz rsync do katalogu_2 i masz dokładnie te same dane w obu katalogach.
Usuwasz z katalogu_1 plik2 i utworzysz plik4. Robisz rsync do katalogu_2 i zawartość tego katalogu będzie wyglądała: plik1 plik2 plik3 plik4 (tak plik2 nie został usunięty). Jeżeli użyjesz rsync-a z opcją --delete zostaną usunięte pliki z katalogu_2, które usunąłeś w katalogu_1.
Dlatego jeżeli dalej usuniesz plik1 i utworzysz plik5, a następnie zrobisz rsync --delete z katalogu_1 do katalogu_2, zawartośc katalogu_2 będzie miała dane: plik3 plik4 plik5 (pliki1 i plik2 zostały wcześniej usunięte)
No ale zaraz...jeżeli uzyjesz rsync'a bez opcji --delete, a po operacji rsyncowania usuniesz co chcesz z katalogu_1 to będziesz miał w katalogu_2 to co usunąłeś w katalogu_1. Zatem: tworzysz plik_nowy w katalogu1, następnie rsync, plik_nowy pojawia sie w katalogu_2, usuwasz plik_nowy z katalogu_1. Masz twój efekt. Po tej operacji na pliku_nowy będzie wykonana operacja kopiuj&usun == przenies.
Czyz nie?
Czyz nie?
No nie bardzo, nawet podczas rsync może się tam coś pojawić - więc to rsync musi usuwać, a jako że jest tam gazylion podkatalogów to ręcznie tego nie zrobię, oczywiście można zrobić "usuń pliki starsze niż jeden dzień" ale i tak ten skrypt musiałby się uruchamiać po sukcesie rsynca - bo zdarza się że maszynka wykonująca rsync ma problemy.
No nie wierzę, patrzyłem i nie widziałem. Muszę kupić lepsze szkła.
Zaraz wypróbuję - tym razem na testowym organizmie, ostatnio wypróbowałem super skrypt na działającym i się zdziwiłem jak wszystkie pliki zniknęły bez powrotu.
A jeszcze bardziej niż ja zdziwiłem zmartwił się właściciel plików.
[edycja]
Doskonale - to to o co chodziło, dziekuję.
Zaraz wypróbuję - tym razem na testowym organizmie, ostatnio wypróbowałem super skrypt na działającym i się zdziwiłem jak wszystkie pliki zniknęły bez powrotu.
A jeszcze bardziej niż ja zdziwiłem zmartwił się właściciel plików.
[edycja]
Doskonale - to to o co chodziło, dziekuję.