BLOGleias as últimas publicações

Muitos tutoriais e dicas sobre Windows Server, Linux, Servidores e muitos outros

Usando o comando ROBOCOPY

Sempre que preciso copiar vários arquivos (ou arquivos enormes) entre partições, HD externo ou pastas compartilhadas em rede eu uso o Robocopy. Ele está disponível desde o Resource Kit do Windows NT e nativamente desde o Windows Vista / Server 2008 e posteriores. 

Por padrão o Robocopy é uma ferramenta de sincronismo de pastas, isto é, se um determinado arquivo do ponto A (origem) já existir no ponto B (destino) ele não será copiado novamente (a menos que o arquivo do ponto A sofra alguma modificação). Portanto também é uma interessante forma de backup. 

O propósito desse artigo é demonstrar o uso do robocopy em dois cenários que encontro com facilidade em ambiente corporativo: 

Replicação de arquivos/pastas quando temos um link lento/instável entre a origem e o destino

Arquivar (mover) arquivos antigos de um file server para um HD USB (ou para outro local)

Mesmo se você já for usuário do Robocopy vale a pena consultar a documentação recente para conhecer as novas funcionalidades. 

Para as dicas abaixo eu estou considerando alguns recursos disponíveis no Robocopy que vem no Windows 7 / Windows Server 2008 R2 (alguns parâmetros podem não funcionar em versões anteriores): 

Cenário 1: Replicação de arquivos/pastas quando temos um link lento/instável entre a origem e o destino 

Se você precisa replicar todo o conteúdo de uma determinada pasta compartilhada em rede (ex.:\\SERVIDOR\Conteudo\Dados) para o seu HD USB (ex.: E:\Download) através de um link lento, ou não muito confiável, minha sugestão é executar o Robocopy a partir de um arquivo .CMD, possibilitando sincronizar todo o conteúdo mesmo que durante o processo de cópia ocorra algum problema com a rede. 

Crie um arquivo Download.CMD a partir do bloco de notas com o seguinte conteúdo: 

:1

ROBOCOPY “\\SERVIDOR\Conteudo\Dados” “E:\Download\Dados” /MIR /MT:10 /Z /R:2 /W:2

goto 1

A única utilidade desse arquivo .CMD é executar o Robocopy em loop para recomeçar de onde parar o processo de cópia (argumento /Z) se houver problemas com a rede ou com algum dos PCs/Servidores. Se houver falha na cópia de algum arquivo duas tentativas serão realizadas (parâmetro /R:2), com um intervalo de 2 segundos entre elas (parâmetro /W:2). O parâmetro /MT:10 (novidade) permite cópia multi-thread (quem usa RichCopy adora isso) de 10 arquivos em paralelo (e não apenas um arquivo por vez). 

Cuidado com o parâmetro /MIR, pois ele espelha todo o conteúdo, inclusive pastas/subpastas. Se na pasta origem, por exemplo, você tem 10 arquivos a pasta destino terá os mesmo 10 arquivos. Se você copiar algum arquivo extra no destino e rodar o comando novamente esse arquivo extra será apagado (porque não existe na origem). Se você quiser apenas uma cópia “incremental”, mantendo os atuais arquivos na pasta destino substitua o/MIR pelo /E. 

Parâmetros extras: 

/XF *.mp3 – ignora arquivos com extensão .MP3

/XD temp – ignora pastas com o nome “temp”

/COPYALL – copia todos os atributos dos arquivos como data/hora, segurança…

Dica extra: Quer controlar a data/horário de início do robocopy, além de duração máxima de sua execução (por exemplo, agendar um download/upload apenas em horário não comercial)? Use o Agendador de Tarefas do Windows (Task Scheduler). 

Cenário 2: Arquivar (mover) arquivos antigos de um file server para um HD USB (ou para outro local) 

Suponha que temos a necessidade de arquivar (mover) todos os arquivos com mais de 3 anos de uma pasta \\SERVIDOR\Docs para a pasta E:\Docs. A sintaxe seria: 

ROBOCOPY “\\SERVIDOR\Docs” “E:\Docs” /MOVE /E /R:2 /W:2 /MINAGE:20080309 /LOG+:”E:\log.txt” /TEE

Esse comando vai mover (/MOVE) todos os arquivos, inclusive pastas e subpastas (/E), exceto os arquivos mais novos que 09/Março/2008 (o parâmetro /MINAGE:20080309 move os mais antigos, mantendo os mais novos), registrando todo o processo em um arquivo de log incremental (/LOG+:”E:\log.txt”). O parâmetro /TEE permite acompanhar no prompt de comandos o andamento do todo o processo de cópia (importante quando usamos algum parâmetro de log). 

Como essa operação envolve a operação “mover” (copia para o destino e apaga na origem) eu recomendo incluir o parâmetro /L para simular o processo. Quando você estiver ciente de que a sintaxe está correta remova o parâmetro /L. 

Para conhecer todos os parâmetros do Robocopy digite no prompt de comandos ROBOCOPY /? e bom divertimento!

Leia outros artigos

Uma forma simples e rapida de bloquear o SKYPE no Windows 8, Windows 7, Windows Vista, Windows XP

Alguns orgão esta abolindo de vez qualquer tipo de chat, seja ele, msn, yahoo, google e skype. Tecnicamente é muito difícil de fazer em um servidor de firewall bloquei o skype. Por tratar-se de um comunicador dinâmico, ele vai variar as portas de conexão, dificultando assim o seu bloqueio. Desenvolvemos um pequeno aplicativo onde, podemos dar um KILL(matar) o processo do skype mesmo que ele esteja instalado no computador. É uma forma simples e rapida, mais bastante eficiente para quem gostaria de bloquear a utilização deste aplicativo.

Primeiro baixe o programinha KillSkype.rar no seguinte site www.sixsideweb.com.br/download/killSkype.rar salve onde voce quiser e siga as instruções logo abaixo;

Configurando Kill Skype no Registro

Primeiramente copie o arquivo “killskype.exe” para, C:\windows\system32 e siga os passos abaixo.

- Menu Iniciar / Executar

- Digite “regedit”, e localize as seguintes pastas:

+ HKEY_LOCAL_MACHINE

+ SOFTWARE

+ MICROSOFT

+ WINDOWS

+ CURRENT VERSION

+ RUN

 

Em seguida crie um “Valor da Seqüência”, clicando com o botão direto do mouse no lado direito da janela, conforme figura abaixo:

clip_image002

Nomeie para “KillSkype”, em seguida de 2 cliques para editar a seqüência, e digite o seguinte caminho: “C:\Windows\System32\killskype.exe”

Para finalizar, de OK, Feche o Editor de Registro e Reinicie sua máquina. Pronto, toda vez que for localizado o Skype no micro ele será finalizado.

 

Mas para quem deseja, vou descrever abaixo o codigo do executavel mencionado neste artigo. E fica ai a melhoria de desenvolvimento para vocês... Este comando nada mais é que FINALIZAR o executavel. E que podemos fazer no GERENCIADOR DE TAREFAS. Mas Vamos executar este codigo pelo Windows PowerShell.

Vá em executar, digite WINDOWS POWER SHELL<enter>. Ele abrira uma tela azul, copie o codigo abaixo e depois cole dentro da tela azul do WINDOWS POWER SHELL. E pressione ENTER.

Prontinho... Só isso....

 

while($true)

{

    $i++

    Stop-Process -processname Skype*

}

Leia outros artigos