Как переместить каталог с одного сервера на другой?

10

У меня есть SSH-доступ к обоим серверам, один из них пуст. Как я могу переместить каталог сайта со старого сервера на новый сервер через соединение SSH?

PS: на обоих серверах стоит unix

ajile
источник

Ответы:

15

Мой любимый это rsync. Он достаточно умен, чтобы копировать только то, что должно быть скопировано (т.е. изменено или новое).

rsync -avz /source/path user@desthost:/destination/path/

Обратите внимание на последний /в конце, чтобы попросить rsync скопировать внутри этого пути (не поверх него).
rsyncзаботится об управлении ssh-соединением для вас. В avz(типичных) опциях предлагается rsyncиспользовать режим архива (tar) для рекурсивного копирования и сохранять как можно больше даты и пользовательских значений. vОпция многословным , чтобы показать вам , что происходит в настоящее время. zОпция почтовый индекс (компресс) передачу , мы надеемся сэкономить время и пропускную способность.

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

Если вам нужно использовать rsync через SSH для нестандартного порта, такого как 2222, вы можете использовать следующую команду ( см. Эту статью ):

rsync -avz -e 'ssh -p 2222' /source/path user@desthost:/destination/path/
Кольцо Ø
источник
Я думаю, что rsync - лучшее решение, чем ssh, по той причине, что дал ring0, т.е. он копирует только то, что нужно скопировать. Так что если вам нужно сделать это более одного раза, rsync даст вам преимущество перед прямым scp.
Джейсон Тан
1
rsync - определенно инструмент. Но по поводу косой черты: это важно для источника, а не для места назначения: rsync -a / src / / dest копирует все под src в dest, rsync -a / src / dest копирует src и все под ним в dest / src / ,
Оскар