Eu tenho uma VM rodando XP na qual os arquivos são carregados em momentos aleatórios. Preciso de um script ou utilitário adequado para a linha de comando, que seja executado a cada X minutos (por exemplo) eMOVERtodos os arquivos enviados para um diretório compartilhado em uma caixa Win7.
Agora, o move
comando da linha de comando não é executado em unidades, muito menos em compartilhamentos. (E dá uma mensagem super útil Access denied.
)
eu poderia fazer um
copy src desr_share
rm src
... mas aqui está a parte complicada:
Quando o comando copy é executado, pode acontecer que um arquivo seja carregado ao mesmo tempo. Eles copy
podem fazer upload de apenas um pedaço do arquivo ou ignorá-lo completamente e seguir em frente, mas mais tarde, quando rm
entrar em ação, o arquivo pode ser completamente carregado e rm
irá apagá-lo, sem que tenha sido copiado corretamente para o destino.
Portanto, preciso de algo que tenha move
semântica (copie um arquivo e exclua-o somente se for bem-sucedido), mas que funcione em várias máquinas.
Alguma sugestão?
PS. Não me importo se um arquivo for movido apenas parcialmente, desde que não seja excluído. Forçarei a substituição de todos os arquivos de destino e, na próxima execução, o arquivo será carregado novamente, completamente.
Responder1
Dê uma olhada no Robocopy, que é padrão no Win7 e está disponível em um kit de desenvolvimento da Microsoft para XP.
use robocopy /?
(ou robocopy /? > drive:\path\robocopy_options.txt
) para opções.
Janelas 7:
http://technet.microsoft.com/en-us/library/cc733145%28v=ws.10%29.aspx
WindowsXP:
http://www.microsoft.com/en-us/download/details.aspx?id=17657#Requirements