Как перенести все содержимое папки (рекурсивно) с одного сервера на другой?

У меня есть папка /home/jbruni на VPS под управлением Ubuntu Server 10.04 LTS (Lucid Lynx).

Я собираюсь выключить этот VPS и перенести некоторые вещи с него на новый VPS, также использующий ту же версию Ubuntu.

В данный момент я хочу переместить все содержимое на /home/jbruni со «старого» VPS на новый.

1) Я хочу сохранить все настройки прав доступа и владения файлами (я не хочу использовать какие-либо chown или chmod после передачи). [Примечание: новые VPS уже имеют тех же пользователей / группы с одинаковыми UID / GID.]

2) Я хочу сохранить все символические ссылки и жесткие ссылки, хотя я считаю, что нет единственная жесткая ссылка в этом случае. У меня есть много символических ссылок, как для файлов, так и для папок, все они указывают на места в собственной папке /home/jbruni.

3) Мне бы очень хотелось сохранить дату и время (mtime, atime, ctime). [Если это невозможно, хорошо ... это не так уж плохо.]

4) У меня недостаточно места на диске, чтобы создать большой файл, содержащий все данные в «старых» VPS, до его передачи ( как большой тарбол). В любом случае, я могу приобрести это временное дополнительное пространство, если это действительно необходимо.

Итак, что я хочу, это как «зеркало» исходной папки. Есть ли способ сделать это легко? (Или даже не так легко?)

Спасибо!

0
задан 17 October 2011 в 04:13

2 ответа

rsync!

rsync -azv -e ssh ./localdirectory/ user@otherserver:/remote/dir

-a плохой парень здесь. Это на самом деле мета-аргумент, который вызывает -rlptgoD, что означает, среди прочего:

  • Рекурсивный
  • Сохранить символические ссылки
  • Сохранить разрешения
  • Сохранить модификацию times
  • Сохранить группу
  • Сохранить владельца
  • И сохранить специальные вещи

Не будет сохранять жесткие ссылки, поскольку жесткие ссылки являются файлами [ 116] (ну, на самом деле это указатель на индекс, который хранит имя файла - но это и обычный файл - когда вы создаете жесткую ссылку, вы просто даете индексу дополнительное имя файла). Это не должно быть проблемой для вас, потому что они довольно редкие ИМО.

-z попытается сжать данные в потоке (немного ускорить процесс).

-v позаботится о том, чтобы у вас было много выхода.

0
ответ дан 17 October 2011 в 04:13

Я бы использовал rsync для этого. Я считаю, что он установлен по умолчанию в Ubuntu, но если нет, то вы можете установить его из архивов

0
ответ дан 17 October 2011 в 04:13

Другие вопросы по тегам:

Похожие вопросы: