Требования для "зеркалирования":
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]