Intereting Posts

Можете ли вы scp, sftp или rsync, трубу?

Я хочу tar и отправить каталог ~ 700GiB на удаленный диск, который я не контролирую. У меня нет места на жестком диске локально, чтобы создать tarball, а затем скопировать его. Удаленный сервер также защищен rssh – вы не можете ssh на сервере и запускать произвольные команды.

Однако я могу использовать scp, rsync или sftp. Итак, мой вопрос относится к одной из этих трех команд. Есть ли способ для scp, rsync или sftp копировать трубу, не имея возможности запускать произвольные команды с другой стороны?


Обновление: приведенные ниже решения не помогли бы нам в нашем вторичном хранилище. Мы ограничены запуском определенных команд. Мы не можем ssh-команды, которые используют ssh, фильтруются / управляются с помощью rssh.

В итоге мы отменили все наши вторичные аккаунты и заплатили много денег, чтобы удвоить размер нашего основного хранилища (наш основной хост мог сделать это без миграции, что было круто). Затем мы создали временный архив и отправили его как обычно. (Что мы не могли сделать с нашим начальным объемом хранения.)

В будущем мы будем использовать дополнительный VPS с собственным выделенным большим хранилищем, чтобы это не повторялось снова. Понятно, что то, о чем я просил, невозможно.

Это не совсем «труба», но вы можете в основном сказать scp чтобы скопировать определенный FD (который может быть каналом) с вашего хоста на другой. Простая команда bash:

( scp не работает, так как требуется размер заранее):

 scp <(tar cz files to compress) host:/path/to/new.file 

но он может работать с чистым ssh :

 tar cz files to compress | ssh host "cat > /path/to/new.file" 

Поведение RSYNC по SFTP

Даже не сжимая ничего, вы можете реплицировать структуру каталогов на другую сторону, используя LFTP (имя вводит в заблуждение) и mirror подсистему LFTP. LFTP поддерживает SFTP, а зеркальная подсистема поддерживает почти все возможности rsync. Он также может разделить передачу на столько соединений, сколько вы хотите, чтобы ускорить ее работу. Я все время это делаю.

пример

Также проверьте этот пост: https://serverfault.com/questions/135618/is-it-possible-to-use-rsync-over-sftp-without-an-ssh-shell