Назад | Перейти на главную страницу

Дублирование файла в общей папке Windows

У меня есть клиентское приложение, которое изменяет файл данных в общей папке. По сути, каждый раз при запуске приложения я хотел бы создать резервную копию файла данных в папке резервных копий на общем ресурсе.

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

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

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

Запустите запланированную задачу, которая время от времени вызывает robocopy. Посмотрите в /MON:n или /MOT:n переключатели.

Repeated Copy Options
            /MON:n : MONitor source; run again when more than n changes seen.
            /MOT:m : MOnitor source; run again in m minutes Time, if changed.

Сервер просто скопирует файл, если в него будут внесены изменения при каждом запуске запланированной задачи. Однако, если файл конфигурации поврежден, вы просто скопируете поврежденные данные. Прекрасно.

Лучше выполнить переименование файла после robocopy и включить дату в имя файла. Таким образом, у вас будет история файлов на случай, если вы обнаружите, что что-то пошло не так с кроссовками. Я считаю, что следующее переименует ваш файл по дате: ren myfile.foo myfile%date:~4,2%-%date:~7,2%-%date:~10%.foo Robocopy возвращает 1, если копирует файлы без проблем. Ноль, если ничего не копирует.

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


РЕДАКТИРОВАТЬ

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

/Z : Copy files in restartable mode (survive network glitch).

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