У меня есть около 200 000 файлов, которые я перенесу на новый сервер сегодня. Я ничего такого не делал раньше и хотел получить совет, как мне поступить. Я перемещаю их между двумя дистрибутивами Centos 6, и они находятся в разных местах страны. У меня недостаточно места на жестком диске на исходном сервере, чтобы собрать все каталоги и файлы в один большой архив, поэтому мой вопрос заключается в том, как мне перенести все эти файлы? Rsync? какой-то особый способ использования rsync? Любой вклад / предложения о том, как это сделать, будет удивительным.
Благодарность
РЕДАКТИРОВАТЬ: Для тех, кому интересно, я НАСТОЯТЕЛЬНО предлагаю использовать screen
при выполнении большой rsync
команды, как это. Особенно, когда может произойти что-то глупое, и вы потеряете соединение с сервером A, с которого вы запускаете rsync
команду. Затем просто отсоедините экран и возобновите его позже.
источник
rsync
? Может быть, на небольшом наборе файлов или около того? Должно быть идеальным инструментом для этого.tar cz | ssh user@example.com tar xz
rsync
для последующих обновлений): «Никогда не недооценивайте пропускную способность универсала, полного лент» (т. е. рассматривали ли вы вопрос о размещении 2-го жесткого диска (или подключите usb2) / usb3 диск), сделайте резервную копию на нем и отправьте его через fedex в удаленное местоположение? Это может быть НАМНОГО быстрее, чем что-либо еще, и сэкономить пропускную способность для других целей.Ответы:
Просто чтобы конкретизировать ответ Саймона ,
rsync
это идеальный инструмент для работы:Предполагая, что у вас есть доступ по ssh к удаленной машине, вы хотели бы сделать что-то вроде этого:
Это позволит скопировать каталог
path/to/local/foo
на/path/to/remote/bar
на удаленном сервере. Новый подкаталог с именемbar/foo
будет создан. Если вы хотите скопировать только содержимое каталога, не создавая каталог с таким именем на цели, добавьте косую черту:Это скопирует содержимое
foo/
в удаленный каталогbar/
.Несколько актуальных вариантов:
источник
rsync -hrtplu --progress
Могу ли я сделать, если я хотел бы видеть прогресс, как он идет?rsync --progress --stats -hrtl --update source destination
.rsync -hrtplu --progress --rsh='ssh -p2202'
это то, что я использую, и он не может подключиться. Продолжайте получать ошибку 255. Но я sshd'd в это. Итак, я знаю, что это не брандмауэр ... мне нужно также предоставить пароль через cmd? или он просто не попросит меня об этом?Это зависит от того, как быстро это должно быть скопировано, и сколько пропускной способности доступно.
Для плохого сетевого соединения учитывайте пропускную способность грузовика, заполненного лентами. (Читайте: отправьте 2,5-дюймовый жесткий диск по почте или просто отправьте туда сам. 300-гигабитные диски должны быть легко найдены).
Если это менее критично по времени или у вас достаточно пропускной способности, тогда rsync отлично подходит. Если есть ошибка, вы можете просто продолжить без повторного копирования более ранних файлов.
[Редактировать] Я забыл добавить, что вы можете запустить rsync несколько раз, если ваши данные используются во время копирования.
Пример:
1) Данные используются. Rsync -> Все данные копируются. Это может занять некоторое время.
2) Запустите rsync снова, копируются будут только измененные файлы. Это должно быть быстро.
Вы можете сделать это несколько раз, пока не произойдет никаких изменений, или вы можете сделать это умным / безопасным способом, делая данные доступными только для чтения во время копирования. (Например, если он находится на используемом общем наборе, который разделяет общий доступ только для чтения. Или rsync данных, то ночью установите общий доступ только для чтения, пока вы запускаете его во второй раз).
источник
Я бы пошел на rsync! Я использую его для резервного копирования моего сервера на внешний сервер, и он работает нормально. Обычно требуется скопировать несколько МБ, но в некоторые дни он достигает 20-30 ГБ и всегда работает без проблем.
источник
rsync по NFS с использованием гигабитного соединения займет около 10 часов. Лучше будет скопировать данные на жесткий диск и перенести их между серверами. Если вам нужно сделать непосредственную копию диска, используйте dd или что-то в этом роде, чтобы создать сырой образ диска. Использование ssh (scp) приводит к огромным накладным расходам. Опытным путем проверено гигабитное соединение. rsync хорош для инкрементной синхронизации между двумя серверами, используемыми в HA или в режиме резервного копирования. Я предполагаю.
источник
will took nearly about 10h. It will be better to copy data on HDD and move them between server.
кроме того, что это по всей стране, так что это займет больше времени.впервые используйте NFS и tar / untar (в этом случае NFS - самый быстрый протокол, tar для экономии пропускной способности сети за счет большей загрузки ЦП)
в следующий раз используйте rsync
источник
tar -cf - * | gzip | nc -p 4567
и другоеnc -l 4567 | gunzip | tar xf -
.