Я использую rsync со следующими флагами, легко запоминающимися как 'glop' и 'trunc' и 'v'.
rsync -gloptrunc $srcdir $dstdir
Краткое руководство:
- g - сохранить информацию о собственности группы
- l - скопировать символические ссылки как символические ссылки
- o - сохранить информацию о владельце
- p - сохранить права
- t - сохранить временные метки
- r - просмотр по каталогам
- u - обновить, пропустить новые файлы
- [n] - нет, не делай этого, вместо этого сделай пробный прогон
- c - контрольная сумма, попытка контрольных сумм для блоков файлов, когда это возможно (*)
примечание: в локальных файловых системах это переопределяется, и вместо этого копируются все файлы.
- v - многословный
Я всегда запускаю вышеупомянутое, чтобы убедиться, что оно работает, затем убираю флаг 'n', чтобы, как только я был доволен результатами.
Ключевые особенности вышеуказанных комбинаций:
- Я запускаю его в обоих направлениях между двумя (или более) серверами, таким образом синхронизируя в обоих направлениях. Вы обновляете то, что считаете мастером в то время.
- Это позволяет либо быть мастером со значительным предупреждением о том, что если вы хотите удалить что-то, вы должны удалить его на обоих, чтобы убедиться, что оно действительно пропало, иначе оно вернется.
Я использую это для синхронизации двух машин или синхронизации с подкаталогами (например, резервное копирование на USB-накопитель).
Как говорилось ранее в одной из других публикаций, «контрольная сумма» может быть фактически отключена, если вы работаете с локальными дисками.
В некоторых редких случаях мне приходилось добавлять дополнительные параметры для учета изменений в учетных записях входа на удаленных компьютерах, смены портов и даже указания места нахождения «rsync» на удаленном хосте ... но они не имеют прямого отношения к вашему вопрос.