Robię kopie zapasowe serwera za pomocą rsync, ale te kopie są dość duże i chciałbym je skompresować. Czy istnieje sposób na zawinięcie rsync w celu rozpakowania pliku w kopii zapasowej, zsynchronizowania zmian z pliku na żywo, a następnie ponownego zgzipowania pliku, gdy tylko zostanie skopiowany?
Czyli jeśli pliki źródłowe na temat żywo są foo , bar i baz , kopia zapasowa ma foo.gz , bar.gz i baz.gz .
Aby utworzyć ponownie: Chcę skompresowane pliki na jednym końcu i nieskompresowane pliki na drugim końcu. Nie chcę kompresować przed rsyncingiem, ponieważ nawet z opcją --rsyncable sprawia, że rsync jest mniej wydajny. Wiem o opcji -z do rsync. Nie mam miejsca na komputerze do tworzenia kopii zapasowych, aby przechowywać wszystkie pliki bez kompresji.
Myślę, że rsynchronizacja z zamontowanym systemem plików fuseCompress może być najlepszą opcją. Historia projektu wspomina o nich, wprowadzając ulepszenia w wydajności rsync.
http://code.google.com/p/fusecompress/
https://github.com/tex/fusecompress/
źródło
Możesz napisać opakowanie do rsync. Jeśli „wyciągasz” dane, nie ma nic specjalnego do roboty. Jeśli chcesz „wypchnąć” dane z oryginalnych komputerów na serwer zapasowy, bardziej delikatne jest, aby działało:
Najpierw musisz się upewnić, że otoki są wywoływane z taką samą nazwą, ścieżką i parametrami jak oryginalny rsync, przynajmniej dla użytkownika, na którym uruchamiasz kopie zapasowe.
Po drugie, pamiętaj, aby nie pisać niczego na standardowe wyjście, ponieważ mogłoby to zakłócić kanał komunikacyjny.
Po trzecie, pamiętaj, aby przekazać wszystkie otrzymane parametry, modyfikując odpowiednio dla nowo nieskompresowanego miejsca docelowego.
źródło
Prawdopodobnie szuka kompresji transmisji danych przez rsync, a nie kompresji plików na drugim końcu.
Sprawdź: http://jimmyg.org/blog/2007/rsync-basics.html
Parametry kompresji ze strony man:
Domyślnie ssh dokonuje własnej kompresji do pewnego stopnia. Nie wiem, o ile lepszy jest rsync w porównaniu z natywnym ssh. Jeśli większość twoich plików jest już skompresowana do plików gzip, prawdopodobnie mechanizm kompresji rsync może dla ciebie niewiele zrobić. Możesz wycisnąć tylko tyle pliku.
źródło