Перевірка успішної передачі файлів після переміщення безлічі великих файлів


3

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

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

Поки найкращим рішенням, про який я можу придумати, є те, що він працює ls -aRу файлі для спільного використання, а потім у локальному диску, а потім у двох файлах. Чи є кращі рішення? Необов’язково, але ще краще, чи є спосіб зробити це, який би хешивав файли, щоб переконатися, що всі дані були успішно передані?

З точки зору моїх навичок роботи на комп’ютері, мені зручно користуватися термінальними програмами, тому не потрібно рекомендувати лише інструменти GUI.

Відповіді:


6

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


1
rsync - це відповідь. Ви особливо хочете параметр контрольної суми, -c, який ви можете використовувати для перевірки контрольної суми після копіювання файлу.
ChrisInEdmonton

+1 для rsync, як тільки я прочитав subjectцю публікацію, я подумав rsync;)
Якуб

@ChrisInEdmonton -c - це перевірка контрольної суми до того, як файл буде скопійований, щоб побачити, чи дійсно його потрібно скопіювати чи ні (тобто він уже існує), правда?
Девід Дорія

1

Як згадував SleighBoy, Rsync є стандартним інструментом для подібних речей.

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

У цій статті описано розумне використання BitTorrent для досягнення приблизно того ж. Я не рекомендую це рішення, але це цікаве прочитання.


1

Якщо у вас є файли з обох сторін, ви можете запустити md5sumз кожного кінця і порівняти хеш. Спосіб зробити це на купі файлів - це tarїм stdoutі передавати вихід md5sum.

rsyncі звичайно, scp -rабо rcp -rтакож є вашими друзями.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.