Duplicando um arquivo em um compartilhamento de arquivos do Windows

1

Eu tenho um aplicativo do lado do cliente que modifica um arquivo de dados em um compartilhamento de arquivos. Essencialmente, toda vez que o aplicativo é executado, eu gostaria de fazer o backup do arquivo de dados em uma pasta de backups no compartilhamento.

Infelizmente, o link entre o cliente e o compartilhamento de rede nem sempre é ótimo. As pessoas se conectam via VPN e pode levar muito tempo para realizar uma cópia de arquivo regular.

Acho que o procedimento padrão para a cópia de arquivos entre compartilhamentos de rede é copiá-lo do primeiro compartilhamento de rede para sua máquina local e, em seguida, para o compartilhamento de destino, mesmo que os dois compartilhamentos sejam iguais, certo? Existe alguma maneira de iniciar uma duplicação de arquivos a ser realizada no próprio servidor?

Teria que estar disponível com comandos padrão disponíveis para clientes SMB, porque não tenho controle algum sobre o servidor de arquivos.

    
por Brian Gordon 23.08.2011 / 22:50

1 resposta

4

Execute uma tarefa agendada que chama robocopy de vez em quando. Olhe para as opções /MON:n ou /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.

O servidor simplesmente copiará o arquivo se houver alterações nele sempre que a tarefa agendada for executada. No entanto, se o arquivo de configuração estiver corrompido, você estará copiando dados corrompidos. Linda.

Melhor executar uma renomeação do arquivo após o robocopy e incluir uma data no nome do arquivo. Dessa forma, você tem um histórico de arquivos para o caso de descobrir que algo foi parar. Eu acredito que o seguinte irá renomear seu arquivo por data: ren myfile.foo myfile%date:~4,2%-%date:~7,2%-%date:~10%.foo Robocopy retorna 1 se ele copia arquivos sem problemas. Zero se não copiar nada.

Vou deixar a lógica do arquivo em lote como um exercício para o leitor (principalmente porque sou péssimo em arquivos em lote).

EDITAR

Se você não tiver acesso ao servidor, poderá simplesmente executar o script Robocopy em Tarefas Agendadas em seu PC para verificar o compartilhamento de arquivos em busca de modificações no arquivo e, em seguida, copiá-lo se forem detectadas alterações. Com a conexão não confiável entre o cliente e o servidor, procure na opção /Z do Robocopy.

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

Se você quiser de alguma forma fazer com que um backup seja executado na própria CPU do servidor com um disparador de um PC cliente ... você precisará de acesso ao servidor e, nesse ponto, a melhor opção seria IMO use o conceito de Robocopy acima desta edição.

    
por 24.08.2011 / 09:48