Mam dostęp do serwera kopii zapasowych za pomocą protokołu rsync (tylko rsync, nic więcej). Teraz chcę pobrać plik stamtąd (który jest .tar.gz) i przekazać go bezpośrednio do polecenia tar, bez zapisywania archiwum w lokalnym systemie plików.
Aby wizualizować, z dostępem ssh mogłem:
ssh remote_host cat backup.file.tar.gz | tar xzf -
I otrzymam nieskompresowaną kopię zapasową lokalnie, bez faktycznego przechowywania .tar.gz na lokalnym komputerze.
Czy można osiągnąć przy użyciu rsync?
aby to skrócić: nie możesz. rsync działa, rozmawiając między 2 instancjami rsync (po stronie klienta i serwera), aby poznać różnice. tar nie jest w stanie mówić „rsyncish”.
źródło
Nie sądzę, ale możesz użyć
scp
:skopiuje plik na standardowe wyjście. Możesz dodać niezbędne informacje o zdalnym użytkowniku i hoście dla źródła pliku do argumentów wiersza poleceń
scp
.źródło
rsync może zawierać tylko protokół rsh lub ssh. Jeśli nie używasz ssh, musi używać rsh. Po prostu zastąp ssh poleceniem rsh:
rsh remote_host kot backup.file.tar.gz | tar xzf -
źródło