Требования для "зеркалирования":

1. Копировать все файлы и директории из /mnt/disk1 в /mnt/disk2.
2. Удалять файлы в /mnt/disk2, которых нет в /mnt/disk1.
3. Сохранять все метаданные (права, владельцев, временные метки, ссылки и т.д.).
4. Убедиться, что содержимое идентично (по содержимому или метаданным, в зависимости от ваших предпочтений).

Рекомендуемая команда:

Для максимальной идентичности и зеркалирования используйте следующую команду:

rsync -aHAXxv --numeric-ids --progress --delete --checksum /mnt/disk1/ /mnt/disk2/

Разбор опций:

  • -a (archive): включает рекурсивное копирование, сохранение прав, временных меток, символических ссылок, владельцев и групп.
  • -H (hard-links): сохраняет жесткие ссылки.
  • -A (acls): сохраняет списки контроля доступа (ACL).
  • -X (xattrs): сохраняет расширенные атрибуты.
  • -x (one-file-system): предотвращает переход за пределы файловой системы /mnt/disk1.
  • -v (verbose): выводит подробную информацию о процессе.
  • --numeric-ids: сохраняет числовые ID пользователей и групп (полезно при зеркалировании между системами).
  • --progress: показывает прогресс копирования.
  • --delete: удаляет файлы в /mnt/disk2, которых нет в /mnt/disk1 (ключ для зеркалирования).
  • --checksum: сравнивает файлы по их содержимому (хеш-суммам), чтобы гарантировать идентичность, даже если время модификации совпадает.

Важные замечания:

1. Опция --delete: Эта опция критически важна для зеркалирования, так как она удаляет файлы в целевой директории (/mnt/disk2), которых нет в исходной (/mnt/disk1). Будьте осторожны, так как это может привести к потере данных в /mnt/disk2.
2. Проверка перед выполнением: Рекомендуется сначала выполнить команду с --dry-run для просмотра изменений без их применения:

   rsync -aHAXxv --numeric-ids --progress --delete --checksum --dry-run /mnt/disk1/ /mnt/disk2/

3. Производительность: Опция --checksum замедляет процесс, так как вычисляет хеши для каждого файла. Если вы уверены, что сравнение по времени модификации и размеру достаточно, можно убрать --checksum:

   rsync -aHAXxv --numeric-ids --progress --delete /mnt/disk1/ /mnt/disk2/

4. Синтаксис пути: Слэш (/) в конце /mnt/disk1/ указывает rsync копировать содержимое директории, а не саму директорию. Это важно для правильного зеркалирования.
5. Права доступа: Убедитесь, что у пользователя, выполняющего команду, есть права на чтение /mnt/disk1 и запись/удаление в /mnt/disk2. Возможно, потребуется запуск с sudo:

   sudo rsync -aHAXxv --numeric-ids --progress --delete --checksum /mnt/disk1/ /mnt/disk2/

Дополнительные рекомендации:

  • Исключение файлов: Если нужно исключить определенные файлы или директории (например, временные файлы), добавьте опцию --exclude:
  rsync -aHAXxv --numeric-ids --progress --delete --checksum --exclude '*.tmp' /mnt/disk1/ /mnt/disk2/
  • Логирование: Для отслеживания изменений можно добавить опцию --log-file:
  rsync -aHAXxv --numeric-ids --progress --delete --checksum --log-file=/path/to/logfile.log /mnt/disk1/ /mnt/disk2/

Итог:

Команда выше (rsync -aHAXxv --numeric-ids --progress --delete --checksum /mnt/disk1/ /mnt/disk2/) обеспечивает полное зеркалирование /mnt/disk1 на /mnt/disk2 с сохранением всех атрибутов и удалением лишних файлов. Для проверки используйте --dry-run, а для ускорения можно убрать --checksum, если сравнение по содержимому не требуется.

[file-name 000227_2025-09-17_18-46-29.txt]