На клиенте Linux вы можете просматривать порты прослушивания с помощью netstat -lnp | less
.
Во время сеанса ssh вы можете дважды нажать ввод, а затем ввести ~ #
. Это перечислит текущие перенаправленные порты для этого сеанса.
Вы говорите, что на самом деле не хотите, чтобы дерево каталогов удаленного сервера отражалось на вашей локальной машине. В этом случае rsync
— неправильный инструмент. Вы можете tar
получить удаленный контент напрямую, доставив сжатый tar-архив на локальный компьютер:
ssh user@remote.machine tar -C /path/to/directory -czf -. | cat >tarball.tgz
В отличие от rsync
, это не поддерживает локальное состояние, поэтому, если соединение прервется во время передачи, вам придется снова передавать весь архив. Одним из способов обойти это было бы tar
содержимое на удаленном сервере, а затем использовать rsync
для передачи этого:
ssh user@remote.machine 'tar -C /path/to/directory -cf -. | gzip --rsyncable >tarball.tgz'
rsync -av user@remote.machine tarball.tgz.
Флаг --rsyncable
обеспечивает маркеры перезапуска внутри сжатого файла, чтобы небольшие изменения в несжатом оригинале не изменяли весь сжатый результат.
Вы можете сжимать файлы во время передачи с помощью опции -z
,но это не влияет на ваши полученные файлы (, кроме более быстрой передачи ), т. е. они не "заархивируются" в один файл.
Вы можете заархивировать удаленный каталог, а затем выполнить rsync для одного файла. Это может ускорить процесс передачи, если вам нужно скопировать много небольших файлов.
Но также имеет смысл выполнить rsync каталог и затем (создать tar в качестве файла резервной копии ), как и вы. В следующий раз, когда вы сделаете это, будут переданы только измененные файлы, отсюда и название rsync.