Задача: на сервере 1 заархивировать директорию в tar.gz и передать её на сервер 2 без промежуточного хранния на сервере 1, поскольку недостаточно дискового пространства.
Пробовал какие-то такие решения, где tar направляет вывод не в файл, а в stdout и этот поток перенаправляется через ssh. Что-то делаю не так, поскольку, во-первых, в терминале в stdout я всё равно вижу вывод после tar, а во-вторых, тестировал на файле в несколько десятков Гб и на сервер 2 пришел файл размером в несколько Мб.
tar -czf - /home/target | sshpass -p 'pwd' ssh -p 23 username@server.com 'cat > /home/backups/destination.tar.gz'
Подскажите, как это реализовать.
Оба сервера на linux, нужен скрипт на bash, и чтобы содержимое tar не выводилось в терминал.
Пароль от ssh передавать нужно через sshpass. Можно использовать rsync вместо ssh. Либо scp.