petrouv: Архив можно автоматически делить на части нужного размера. А если задача в периодической синхронизации файлов, то лучше всего Dropbox/Mega/Yandex Disk/Google Drive/iCloud/OneDrive, выбирайте на свой вкус.
Не думаю, что разработчики TeamViewer настолько глупы, чтобы не предусмотреть этот момент и не проверять хэша автоматически, если же хочется с проверкой рекомендую глянуть BitTorrent Sync, там проверка хэша на уровне протокола заложена.
Мне кажется, у TeamViewer есть проверка на размер файла — потому что он пропускает файлы совпадающие по имени и размеру, но делает это слишком быстро для того, чтобы я поверил в то, что он считает контрольные суммы по обе стороны. За BitTorrent Sync спасибо, посмотрю — не слышал про него. А скорость будет хорошая? А то Dropbox, к примеру, выглядит очень неторопливым.
petrouv: скорость будет торрент, то есть ровно такая какую позволит провайдер, к слову не каждый провайдер дает нормальный торрент трафик, к примеру Yota еще в договоре указывает, что торрент трафик будет жестоко резаться.
А зачем тимвьюверу считать контрольные суммы, если есть имя и размер?
BtSynk поможет передать файлы, и работает быстро, но задачу никаким образом не решит.
Артем: Любой протокол передачи данных подразумевает проверку целостности, и размер и имя не являются критериями целостности, программисту нужно иметь лоботомию мозга, чтобы считать размер или имя таковыми. Не думаю что программисты TeamViewer смогли бы такое написать если бы у них были таки проблемы с головой. BtSync работает с блоками данных, и производит проверку целостности каждого блока, поэтому я и говорю что он решает задачу на уровне протокола, ему нет нужды строить чек сумму всего файла, т.к. во время передачи он уже проверял целостность каждого отдельного блока данного файла.
Не любой протокол предполагает проверку целостности, например взять тот же фтп, где она там?
Тимвьювер так же просто тянет файл, и если какой то сбой, то файл может остаться недокачанным.
BtSync обеспечивает передачу данных.
А задача озвученная в вопросе - проверка переданных данных, на идентичность исходным. Он такого делать не умеет.
Артем: любой нормальный может, ftp я таковым не считаю, btsync использует протокол bittorrent https://ru.wikipedia.org/wiki/BitTorrent_(%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB)#BTIH_.28BitTorrent_Info_Hash.29 который использует hash Хеш (англ. hash) — SHA1 отдельных сегментов оригинальных файлов, перечисленных в словаре «info» .torrent-файла. Каждая часть после получения сначала проверяется на совпадение хеша. Если проверка не удалась, данные отбрасываются и запрашиваются ещё раз. в btsync вместо торрент файла используется magnet ссылка, по которой запрашиваются метаданные, такие же как и в торрент файле
Виталий Пухов: Ну хэш то проверяется не файла, а отдельного чанка.
Поэтому чанки проверяются, а файл точно так же как и в фтп никак не проверяется.
Т.е так же может быть битый файл и в битторенте, протокол от этого никак не страхует.
Артем: Если файл был битый изначально то битый и скачается это очевидно, протокол защищает от повреждения во время передачи, но не от того что ему подсунули. Даже и в таком случае чексумма всего файла вам ничем не поможет, т.к. у переданного и оригинала она будет одинаковая, вне зависимости как они повреждены. Повреждены они будут одинаково.
Виталий Пухов: "Может быть битый файл и в битторенте" — это, вероятно, о том, что есть шанс получить в результате передачи битторентом битый файл, а не о том, что он исходник был битый. Кажется, Артем говорит верно: проверка чанков не гарантирует, что хеш-суммы оригинала и переданного файла совпадут — к примеру, из-за некорректной склейки. Хотя, конечно, вероятность получить побитый файл, похоже, сильно ниже, чем при отсутствии таких проверок.
Кстати, поддержка Team Viewer ответила следующее: "If you establish a file transfer, TeamViewer will open a separate event protocol and log when the transfer is finished or interrupted. Unfortunately we are only verifying if the transfer works and not if the data is correct".
Я когда задавал вопрос, скорее думал о некой утилите, которая может сгененировать лог по заданной директории на машине-источнике и с помощью этого лога верифицировать директорию на машине-приемнике.
petrouv: не думаю что в этом есть необходимость, ошибки склейки могут быть только в результате аппаратных сбоев, с такими программными передача бы не могла работать в принципе. готовых утилит с таким функциналом для папок я не встречал, но написать дело 10 минут. Для одного файла они называются например md5 checker
Total Commander не для Mac OS (хотя это еще можно как-то порешать). Она как работает? Хеши проверяет? Мне всегда казалось, что они в лучшем случае время создания файла сравнивают.
Про rsync я тоже думал. Но для него, кажется, нужен внешний ip хотя бы на одной машине.
А как его натравить лучше? Просто в dry mode с опцией проверки хешей и посмотреть на отчет?