3

Я собираю воедино данные, которые генерируются из множества разнородных источников, в смешанной среде различных версий Windows (XP /7) и одного Linux (Centos). Данные доступны через сетевые ресурсы. Данные создаются различными программами в каждом месте, создавая и добавляя файлы с различными интервалами. Большинство источников данных являются закрытыми системами, к которым у меня нет административного доступа, что действительно усложняет ситуацию.

Мне нужно периодически подключаться к сетевым ресурсам и собирать вместе данные в центральном месте, используемом для дальнейшего распространения. Данные генерируются и собираются круглосуточно, в течение нескольких недель. Это будет выполняться с сервера Windows 2008.

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

К сожалению, использование vss не вариант, так как они не являются общими томами.

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

Я изучил различные программные решения для резервного копирования, но все, что я тестировал, по-прежнему блокирует файлы, когда они не могут использовать vss.

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

4 ответа4

2

Не уверен, что XXCOPY может делать то, что вы хотите, поэтому вы можете прочитать сообщение о его доступе к заблокированным файлам. В противном случае это звучит как XCOPY (и RoboCopy) на стероидах. Не бесплатен для использования в бизнесе, хотя все еще поддерживается (последняя версия выпущена 27.12.2013)

Дополнение: в документации сказано, что XXCOPY сам не блокирует файл, пока копирует его.

1

Просто чтобы добавить еще один вариант, я нашел FastCopy для копирования файлов в режиме совместного чтения / записи.

Он кажется довольно зрелым и существует с 2004 года, и с открытым исходным кодом под лицензией BSD можно найти здесь. Это похоже на хорошую альтернативу, поскольку требуются не все дополнительные прибамбасы, которые предлагает XXCOPY.

1

FileCopy.exe утверждает, что может сделать это, но он довольно старый (2004), поэтому я не знаю, будет ли он работать для вас. Кроме того, неясно, останется ли копия неблокируемой при использовании через общий сетевой ресурс.

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

-1

попробуйте shadowspawn (с robocopy). Это довольно хорошо.

Shadowspawn

Редактировать: я только что понял, что это 2 года. Сожалею!

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