2016-05-22 6 views
0

У меня есть файловая система btrfs, состоящая из нескольких жестких дисков, в которых хранится около 11 ТБ данных. Моя резервная копия состоит из NAS, который экспортирует один путь через NFS. Затем путь монтируется на машине с помощью btrfs-bilesystem и вызывается rsync, чтобы синхронизация nfs синхронизировалась с основной файловой системой. Я вызываю rsync с одним -v и отправляю результаты прогона на мою учетную запись электронной почты, чтобы убедиться, что все синхронизировано правильно. Теперь по чистой случайности я узнал, что некоторые каталоги не синхронизированы правильно - каталоги существовали на NAS, но они были пустыми. Скорее всего, это не проблема, так как rsync запускается как root. Похоже, что в моей ситуации rsync не является полностью надежным, но я хотел бы сравнить два дерева каталогов, чтобы увидеть, нет ли каких-либо файлов, отсутствующих в NAS, и/или если есть файлы, которые больше не существуют на btrfs и которые должны были удалены rsync согласно. (Я использую опцию --delete).Сравнение двух деревьев дерева

Поэтому я ищу программу или скрипт, который может помочь мне проверить, работает ли rsync правильно. Мне не нужно ничего сложного, как контрольные суммы, все, что я хочу знать, содержит ли NAS все файлы в btrfs-файловой системе.

Какие-нибудь предложения, где начать?

С уважением, Стефан

ответ

0

Выполните следующие команды, чтобы получить список всех файлов:

find /path/to/fs -type f | sort > filesystem.txt 
find /path/to/nfs -type f |sort > nfs.txt 

Затем сравните списки:

diff -u filesystem.txt nfs.txt 
+0

я работал над проблемой, и кажется, что Rsync не распознавание файлов в одном каталоге. Спасибо, что посоветуем, кстати, Роланд. Запуск Rsync с Rsync --delete -avvv/мнт/Btrfs-рейдам/Загрузки// мнт/QNAP/Загрузки выходные линии, как recv_files (ATOS/00014.m2ts) recv_files (ATOS/00037.clpi) recv_files (АТОС/00037.m2ts) и закончил с: recv_files фазы = 1 generate_files фаза = 2 send_files фаза = 2 отправить файлы закончили Итого: матчи = 0 hash_hits = 0 false_alarms = 0 данные = 0 recv_files фаза = 2recv_files завершено generate_files phase = 3 generate_files завершено –

+0

отправлено 4,865 байт получено 59,368 байт 128,466.00 байт/с общий размер 345,102,247,470 speedup is 5,372,662.77 [отправитель] _exit_cleanup (код = 0, файл = main.c, line = 1183): о вызове exit (0) По-прежнему на qnap находится каталог, из которого существуют файлы но пуст. –

+0

По умолчанию rsync использует алгоритм «быстрой проверки», где он сравнивает только размер файла и время последнего изменения, чтобы решить, изменился ли файл. Вы можете попробовать запустить rsync с опцией '-c', чтобы он вычислял и сравнивал контрольную сумму, чтобы решить, какой файл был изменен. Это будет работать медленнее. –

Смежные вопросы