Есть два сервера, к которым я могу получить доступ через 2 разных VPN-соединения. Мне удалось использовать оба VPN на одном компьютере одновременно (немного правил маршрутизации).
Я хочу сделать scp <remote1>:some/file <remote2>:destination/folder
с моего терминала ноутбука. Но когда я пытаюсь это сделать, scp
команда, которая вызывается на remote1, не может найти remote2, потому что они не находятся в одной сети. Можно ли заставить scp
команду проходить через мой ноутбук как маршрутизатор?
Если я попробую с Nautilus (подключиться к серверу, обоим серверам, затем скопировать-вставить), это сработает, но я бы хотел сделать это с терминала.
Ответы:
Более новые версии scp имеют опцию -3
источник
Если вам нужно больше гибкости, чем
scp -3
просто,ssh
и трубы - это весело.Это эквивалентно перенаправлению потока через локальную машину:
Затем вы можете добавить дополнительные перенаправления потоков в любой точке, например, чтобы связать несколько промежуточных машин, или сохранить локальную копию переданного файла во время его маршрутизации.
источник
pv
установлен, и вы замените первыйcat
на него.Расширяя ответ @ Anko, вы можете использовать
tar
для нескольких файлов:Сжатие совершенно необязательно - ваши данные могут быть не слишком сжатыми или недостаточно большими, чтобы оправдать накладные расходы. Если ваша версия
tar
не поддерживает-z
коммутатор, проследитеgzip -c
иgzip -dc
соответственно.PS: Остерегайтесь версий,
tar
которые не удаляют начальные косые черты при извлечении (т. Е. Записывают в абсолютные пути, если они есть).Редактировать:
-e none
не требуется с каналами, потому что псевдо-терминал не выделен.источник
ssh
имеет-C
флаг для включения сжатия потока. Согласноman
странице, он использует тот же алгоритм, чтоgzip
и. Страница руководства также помогает понять, когда ее использовать: «Сжатие желательно на модемных линиях и других медленных соединениях, но только замедляет работу в быстрых сетях».-C
здесь в том, что локальный компьютер должен будет распаковать и повторно сжать данные. Указаниеtar
выполнить сжатие означает, что сжатые данные передаются прямо по каналу без какой-либо обработки.