Время от времени мне приходится выполнять несколько больших изменений миграции файлов данных на моем сервере, и я ищу хороший способ сделать это. Я думал об использовании rsync для дублирования моей структуры каталогов, начиная с корневой папки данных, создавая жесткие ссылки на все исходные файлы (некоторые из них довольно большие), и я могу перезаписывать в дереве назначения только те файлы, которые необходимо перенести. В конце я могу смело переключаться со старых файлов на новые с помощью двух mv
операций.
Тем не менее, я не могу заставить Rsync сделать это. Я пытался
rsync -a --link-dest=$DATA $DATA $DATA/../upgrade_tmp
но вместо создания жестких ссылок на файлы rsync копирует их полностью. Есть ли проблема при использовании одного и того же каталога источника и ссылки?
ls -ilah
$SOURCE
каталога в каталог,$TARGET
например:SOURCE='abs_path_to_backup'; TARGET='.'; rsync -a --link-dest=$(relpath $TARGET $SOURCE) $SOURCE/ $TARGET/
То, что вы хотите, это "cp -al":
rsync -a
источник
cp -al
к сожалению, не доступен в моей системе (Mac OS X 10.6). Вместо этого я буду использовать pax ...Параметр
--link-dest
inrsync
относится к каталогу назначения , а не к текущему каталогу. Итак, что вы хотите, это:источник
--link-dest
параметр, если он относительный , относится к целевому каталогу. В моем случае это абсолютно. Даже создание его относительно целевого каталога не делает эту работу.Оказывается, это сложнее сделать с
rsync
помощью других инструментов. Правильный ответrsync
- Стивен Монаи, но самый простой способ сделать это - использовать одинcp -al
илиpax -rwl
в системах, где-l
недопустимый вариант дляcp
:или
источник
Меня устраивает:
Я использую rsync версии 3.1.0.
От мужчины :
источник
Можете попробовать перейти по ссылке http://www.lessfs.com/wordpress/ это работа на COW (копирование на запись), которая сэкономит время и пространство
источник
Сначала создайте каталоги только в месте назначения:
Затем жестко связать только файлы:
источник
pax
как показано в моем комментарии выше, что кажется проще.Используйте опцию -H, чтобы сохранить жесткие ссылки и прочитать справочную страницу.
источник