ssh, sudo, а затем скачать?

У меня есть сервер A, на нем есть три пользователя. Мне нужно загрузить 70 гигабайт содержимого папки на сервер B. Сервер имеет только 90 гигов пространства, поэтому сжимается, а передача не является вариантом. По моему опыту rsync чрезвычайно медленный в 10 раз медленнее, чем другие методы.

Я всегда использовал

ssh user@ip "tar zc -C /home/minecraft/multicraft/servers/server2 ." | tar zx

Эта команда потрясающая, потому что она открывает трубку и напрямую загружает все, что вы хотите, на максимальной скорости. Он не замедляется от крошечных файлов, таких как rsync. Я использовал это для передачи материала быстро, и он настолько быстр, что загрузка в 100 Мбит / с является узким местом.

В любом случае, но сервер A имеет пользователя, в который я вхожу, он также имеет sudo -i, и, наконец, есть также minecraft, файлы пользователя находятся на самом деле. Пользователь не является фактическим пользователем, это просто место для файлов в целях безопасности. Я не могу войти в этот пользователь.

Итак, что я должен сделать, это ssh с сервера B на сервер A, с одной командой sudo в root, предоставить пароль root, а затем выполнить мой обычный

ssh user@ip "tar zc -C /home/minecraft/multicraft/servers/server2 ." | tar zx

Пожалуйста, помогите мне всемогущим компьютерным волшебникам.

2 Solutions collect form web for “ssh, sudo, а затем скачать?”

Вы можете использовать sudo внутри вашей команды ssh. Для запроса пароля sudo вы можете передать пароль в виде обычного текста с помощью ключа -S :

 ssh user@ip "echo mypassword | sudo -S tar zc -C /home/minecraft/multicraft/servers/server2 ." | tar zx 

Другой метод, который я не очень много разбираюсь, использует expect . Вы тоже можете заглянуть в это.

Вы получили сообщение об ошибке sudo: no tty present потому что ssh автоматически не выделяет устройство tty, когда вы находитесь в неинтерактивном режиме. т.е. вы указали команду для запуска в удаленной системе.

Вы можете заставить ssh выделить устройство tty с помощью опции -t .

 ssh -t user@ip "sudo tar zc -C /home/minecraft/multicraft/servers/server2 ." | tar zx 
  • Таймер ключей был отключен при попытке добавить открытый ключ GPG
  • Ошибка при запуске контейнера LXC
  • Постоянное добавление приоритета к задаче на машине Linux
  • Нужна помощь в создании Live SD-карты
  • btrfs RAID1 массив показывает как два диска
  • Создайте пакет deb из разницы между двумя изображениями
  • Как проверить, разрешены ли CONFIG_HIGH_RES_TIMERS?
  • Как подделать файловую систему, которая не может быть установлена ​​другими пользователями
  • Переполнение / tmp смонтировано при наличии свободного места на /
  • Как запустить службу автоматически, когда запускается Ubuntu?
  • Как отформатировать диск без потери grub?
  • Linux и Unix - лучшая ОС в мире.