xcopy é ilógico?

4

Eu quero usar o XCOPY para um script de cópia fácil para "sincronizar" uma pasta para outra, todas as noites.

XCOPY C:\hyper-v\VHD\*.avhd Z:\BACKUP\HYPERV_VMs /s /d /c

Eu não consigo receber nenhum aviso. Quando escolho a opção / y xcopy sobrescreve tudo (115GB) então não adianta. Não vejo outra opção para desativar o prompt e NÃO substituir arquivos existentes.

(Se você tiver uma proposta para usar outro comando, seja meu convidado, talvez ajuste o exemplo existente)

Obrigado antecipadamente!

    
por laurens 10.11.2009 / 12:23

6 respostas

6

O Robocopy tem muito mais opções e está embutido nas versões mais recentes do Windows.

robocopy source-dir destination-dir filespec /E /XC /XN /XO 

Isso só copiará os arquivos que atendem filespec (por exemplo, * .avhd no seu exemplo) do diretório de origem (c: \ Hyper-V \ vhd no seu exemplo) para destdir (z: \ backup \ hyperv_vms). Os switches informam para ignorar arquivos mais antigos, mais novos e alterados, de modo que apenas copie os arquivos existentes no diretório de origem que não existem no destino.

    
por 10.11.2009 / 12:57
2

Eu uso xcopy / d / e / c / k / y / v / o que não fornece nenhum aviso e não sobrescreve os arquivos existentes se a origem for a mesma data que o destino.

    
por 10.11.2009 / 12:29
2

O parâmetro /M diz para copiar apenas arquivos com o conjunto de atributos "Arquivo" e redefine esse atributo ao mesmo tempo.

O bit "archive" é uma parte do sistema de arquivos, como o bit "Somente leitura" ou o bit "Arquivo do sistema". Era tradicionalmente usado para software de backup "ingênuo" antiquado para que ele pudesse dizer se um arquivo tinha sido ou não alterado desde que foi arquivado por último. O sistema operacional deve ativar o bit de arquivamento sempre que um arquivo é alterado (ou defini-lo em arquivos recém-criados) e o software de backup faz o backup do arquivo e desliga o bit para mostrar que ele foi arquivado agora.

Você pode ver se isso está ou não definido nos arquivos, alterando para a pasta em um prompt de comando e executando attrib . Todos os arquivos com um "A" na primeira coluna estão aguardando para serem arquivados.

    
por 10.11.2009 / 12:30
2

Eu usaria rsync para essa finalidade. Você pode baixar um binário compatível com o Windows ou obtê-lo como parte do Cygwin (eu recomendo a abordagem anterior, a menos que você já tenha o Cygwin instalado). Você pode enviar arquivos para o site remoto ou extraí-los. Eu prefiro o método de puxar, mas qualquer um fará.

Usando o método pull, o daemon rsync será executado no servidor de origem; usando push, o daemon rsync será executado no servidor de destino. Aqui está um exemplo de um arquivo de configuração do daemon pull:

max connections = 4
port           = 873
read only      = true
write only     = false
auth users     = syncman
secrets file   = /etc/rsyncd.secrets
strict modes   = false
hosts allow    = 192.168.1.8
refuse options = delete

[ProjectOne]
comment = Jimmy's Project
path    = C:/projects/project_one

[MutualProject]
comment = The MUTUAL project
path    = C:/paid_projects/mutual

Como você especifica o caminho dependerá de qual porta rsync você usa (por exemplo, o cygwin especifica caminhos como este: / cygdrive / c / projects / project_one). Você iria então emitir este comando do servidor:

rsync -a -v 192.168.1.15:ProjectOne backups/ProjectOne

(onde o endereço IP é o endereço IP da máquina de origem). Se o servidor de backup for uma caixa do Windows, você precisaria de uma das muitas implementações cron-for-windows.

    
por 10.11.2009 / 14:36
0

Se você precisar rolar seu próprio backup incremental, sugiro que encontre uma versão do rsync que funcione com o Windows ou instale o Cygwin com a porta rsync. Ele foi projetado para fazer exatamente isso e tem muito mais opções do que o xcopy.

    
por 10.11.2009 / 12:49
0

Se eu fizer

xcopy junk*.* \TEMP /s /d /c /y

ele não faz nada na segunda vez que eu o executo, então não tenho certeza porque o seu está copiando os arquivos novamente a cada vez?

Eu pareço que os mesmos arquivos em servidores diferentes têm tempos que estão "fora por uma pequena quantidade" - poderia ser essa a causa?

    
por 10.11.2009 / 13:12

Tags