Ваша команда в целом правильная, но, скорее всего, вы сталкиваетесь с проблемами из-за некорректной обработки вывода. Попробуйте использовать `-f` для подавления вывода в терминал и отключить вывод ошибок, чтобы он не отображался. Также убедитесь, что `sshpass` правильно работает с вашим паролем.
Вот откорректированная версия вашей команды:
```bash
tar -czf - /home/target | sshpass -p 'pwd' ssh -p 23 username@server.com 'cat > /home/backups/destination.tar.gz' 2>/dev/null
```
Краткое объяснение компонентов:
- `tar -czf - /home/target`: создаёт архив в формате gzipped tar и выводит его в стандартный поток (stdout).
- `|`: передаёт вывод `tar` через конвейер в следующую команду.
- `sshpass -p 'pwd'`: передаёт пароль для SSH.
- `ssh -p 23 username@server.com 'cat > /home/backups/destination.tar.gz'`: использует SSH для подключения к серверу и перенаправления содержимого в файл `destination.tar.gz`.
- `2>/dev/null`: подавляет любой вывод ошибок, чтобы они не показывались в терминале.
### Альтернативное решение с использованием `pv`
Ещё одним вариантом, который позволяет отслеживать процесс передачи и подавлять вывод, является использование утилиты `pv`. Она показывает прогресс передачи и позволяет контролировать ввод/вывод:
```bash
tar -czf - /home/target | pv | sshpass -p 'pwd' ssh -p 23 username@server.com 'cat > /home/backups/destination.tar.gz'
```
Это будет отображать процент передачи данных и общую скорость, при этом не выводя лишней информации в терминал.
### Проверка на сервере 2
После завершения передачи убедитесь, что файл корректно создан на сервере 2, с помощью команды `ls -lh /home/backups/destination.tar.gz` и `tar -tvf /home/backups/destination.tar.gz`, чтобы проверить содержимое архива.
### Использование `rsync`
Если вы хотите скопировать каталог, не создавая промежуточные файлы, `rsync` также может подойти. Однако для вашего случая с архивированием скорее подойдет `tar`. Использование `rsync` лучше для прямого копирования директорий:
```bash
sshpass -p 'pwd' rsync -avz -e "ssh -p 23" /home/target/ username@server.com:/home/backups/
```
Но учтите, что `rsync` не сжимает файлы, как делает `tar`. Пользуйтесь `tar` для сжатия, если это критично.