Передача файлу tar на 30 ГБ з одного віддаленого сервера на інший - обмежений дисковим простором


8

У мене є тар-файл «Moodle» на 38 Гб, який мені потрібно перенести зі старого сервера (Спільний хостинг), який ми можемо викликати «Сервер A» на новий сервер (Виділений віртуальний) або «Сервер B». Я з Mediatemple, якщо це допомагає.

Я вже розробив каталог і використовував wget, щоб перенести його на сервер B через SSH, однак - це чудовий пакет від 100 ГБ, і я на 96% ємності диска - це означає, що я не можу зняти файл на сервері B! Чи є спосіб перенести цей величезний файл із сервера A на сервер B, зберігаючи дозволи та з найменшими шансами на пошкодження файлу, що не змусить мене досягти межі диска?

Хоча я до цього часу витратив досить багато часу, я був би готовий відмовитися від свого первісного плану, якщо хтось може запропонувати кращу ідею - і я був би дуже вдячний!

Відповіді:


21

Не смоли. Використовуйте rsync -avдля збереження дозволів під час передачі файлів. Хоча як смола, це не зберігає контекст selinux. Не те, що я вважав би це важливим.


1
Привіт Деннісе, дякую за відповідь. Я не думаю, що ви могли б трохи детальніше розказати, як використовувати команду rsync? Або надати корисну статтю? Ще раз
дякую

1
Корисною статтею буде сторінка rsync :) Але в двох словах: якщо у вас є доступ ssh з serverb до servera, запустіть це на serverb:rsync -av servera:/path/to/files/to/copy/ /path/to/copy/to
Dennis Kaarsemaker

1
Якщо ви не знаєте, як використовувати основні команди в ОС, яку ви використовуєте, почніть з довідкової програми. На машинах Unix це часто щось на зразок man rsyncабоrsync --help
mfinni

1
-aмається на увазі -r(і ще багато прапорів, які люди забували, поки -aне додали, оскільки "це корисні прапори для створення резервних копій")
Dennis Kaarsemaker

1
Якщо безпека не є проблемою (я маю на увазі, що ви довіряєте мережі між двома машинами), nc - це також варіант. На сервері: tar -zc source | nc -l 1313 Про клієнта: nc SERVER_IP 1313 | tar -zx
Цветомир Димитров

12

Ви, мабуть, хочете придбати більше місця на диску, але якщо ви цього не зробите, ви могли б ...

перекидайте тарбол навколо, а не завантажуючи його.

newserver#  ssh olduser@oldserver "cat /path/to/tarball" | tar xf -

або якщо у вас немає доступу SSH до вашого старого сервера

newserver# wget -O - http://oldserver/path/to/tarball | tar xf -

або використовувати rsync, як сказав Денніс .

Будь креативним. Є й інші рішення, про які я не згадую.


Можливо, вам доведеться скористатися --numeric-ownerопцією, перш ніж робити тарбол, щоб переконатися, що власник і групи не зміниться. ssh ouser@oserver tar -zcplC /src_path --numeric-owner . | tar -zxpC /dst_path
Ф. Хаурі

@ F.Hauri --numeric-ownerможе мати (потенційно серйозні) ненавмисні наслідки, якщо схема UID / GID відрізняється між двома машинами. Зазвичай це не проблема у внутрішньому середовищі, але перехід від "спільного хостингу" до "виділеного віртуального" це може спричинити проблеми. Ви повинні очікувати , щоб мати у власності виправити на новому сервері , якщо використовується tar, cpioі , можливо , навіть rsync.
voretaq7

Так, ви маєте рацію, але, не знаючи про такий варіант, також може бути ефект (кордон). Найкраще: знати, що ти робиш, і ... rtfm ;-)
Ф. Хаурі

... деякі цікавий спосіб (фільтри) використовувати (чи ні) , щоб бути творчим : ncчи openssl, sed, gpg, uuencodeі mail(з обережністю;) enscript+ lpr+ [пташині носії] ( fr.wikipedia.org/wiki/IP_over_Avian_Carriers ) + scan+ ocr. .. Але є ще більше ...
Ф. Хаурі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.