3

Я работаю над переносом большого количества файлов (> 100 ГБ, нескольких тысяч файлов) по моей сети на новый Mac. После завершения передачи я хотел бы убедиться, что все файлы были успешно перенесены и что в процессе не произошло никакого повреждения.

Файлы поступают с общего ресурса сервера FreeNAS (NAS с открытым исходным кодом на основе FreeBSD). Они загружаются в файловую систему Mac.

Пока что лучшее решение, которое я могу придумать, это запустить ls -aR в файл для общего ресурса, а затем на локальный диск, а затем развести два файла. Есть ли лучшие решения? Необязательно, но даже лучше, есть ли способ сделать это, который бы хэшировал файлы, чтобы убедиться, что все данные были успешно переданы?

С точки зрения моих навыков работы с компьютером, мне удобно пользоваться терминальными приложениями, поэтому нет необходимости рекомендовать только инструменты с графическим интерфейсом.

3 ответа3

6

Одно слово. rsync.

1

Если у вас есть файлы с обеих сторон, вы можете запустить md5sum на каждом конце и сравнить хеш. Способ сделать это для группы файлов - это tar их в stdout и направить вывод в md5sum .

rsync и обычный scp -r или rcp -r также ваши друзья.

1

Как упоминал SleighBoy, Rsync является стандартным инструментом для такого рода вещей.

Ваше предложение о выводе ls в обеих системах не сработает, потому что, хотя оно будет проверять наличие файлов в обоих местах, оно ничего не сделает для проверки целостности данных. Если бы вы делали это вручную, вам нужно было бы создать контрольную сумму для каждого файла в обеих системах, а затем убедиться, что контрольные суммы совпадают. Есть инструменты, которые могут сделать это для вас (у Radmind есть инструменты, которые делают это проще), но проще использовать Rsync.

В этой статье описывается умное использование BitTorrent для достижения примерно того же. Я не рекомендую это решение, но это интересно читать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .