O que é e como usar o comando Robocopy (Robust File Copy)?
A vida de um profissional de TI nem sempre gira apenas associadas às linhas de código e xícaras de café. Muitas vezes a temperatura aumenta, principalmente quando é necessário copiar grandes bases de dados.
Apesar da rotina diária sempre envolver cópias e restaurações, a atenção aos detalhes nem sempre está presente. E aí é que começam os problemas.
Usar comandos como o Robocopy ajuda muito nas tarefas rotineiras, porém também pode causar muita dor de cabeça quando negligenciamos as práticas essenciais de backup.
O que é Robocopy?
Robocopy (Robust File Copy) é uma ferramenta de linha de comando disponível da Microsoft. Esse comando foi incorporado inicialmente no Windows NT 4.0 como parte do Windows Resource Kit e, posteriormente, foi incluído no Windows Vista e em versões mais recentes do sistema operacional.
Ele é frequentemente utilizado por administradores de sistema e profissionais de TI para realizar tarefas de backup, migração de dados e automação de processos relacionados à cópia e movimentação de arquivos.
Além de copiar arquivos e diretórios de um local para outro, o Robocopy oferece recursos avançados como cópia multithread, retomada de transferências interrompidas, espelhamento e sincronização de diretórios e controle da largura de banda.
Embora seja uma boa ferramenta para essas tarefas, muitos programadores acabam usando o comando para criar uma solução improvisada de backup, o que geralmente causa muita dor de cabeça.
Quais são as sintaxes para o comando Robocopy?
A sintaxe básica do comando Robocopy é a seguinte:
robocopy <source> <destination> [<file>[ ...]] [<options>]
Onde:
Source - O caminho do diretório de origem do qual você deseja copiar os arquivos.
File [...] - Os arquivos específicos que você deseja copiar. Você pode ainda usar as partículas * e ?. Caso não seja especificado nenhum arquivo, o Robocopy copiará todos os arquivos do diretório de origem.
Outras opções comuns de partículas associadas ao comando são:
/S - Copia subdiretórios, exceto os vazios.
/E - Copia subdiretórios, incluindo os vazios.
/MIR - Espelha um diretório, ou seja, faz com que o diretório de destino seja idêntico ao diretório de origem, excluindo arquivos e diretórios extras no destino.
/Z - Copia arquivos em modo reiniciável, útil para transferências em conexões instáveis.
/W - Tempo de espera entre as tentativas de cópia em caso de falha, em segundos. Por padrão, são 30 segundos.
/R - Número de tentativas de cópia em caso de falha. O padrão é 1 milhão de tentativas.
/MT[:n] - Realiza a cópia usando múltiplos threads. Você pode especificar o número de threads (n) para usar; o padrão é 8. Esse recurso está disponível a partir do Windows 7 e Windows Server 2008 R2.
/LOG:file - Cria um arquivo de log no local especificado.
/LOG+:file - Acrescenta o resultado da operação de cópia a um arquivo de log existente, em vez de substituir o conteúdo do arquivo.
/XF file [file]... - Exclui arquivos que correspondam aos nomes e caminhos especificados.
/XD dir [dir]... - Exclui diretórios que correspondam aos nomes e caminhos especificados.
/NP - Não mostra a barra de progresso durante a cópia. Útil quando você está registrando o processo em um arquivo de log.
Essas são apenas algumas opções disponíveis para o comando. Para acessar a lista completa de opções e obter mais ajuda, basta executar o comando robocopy /? no prompt de comando do Windows.
Como criar um arquivo .bat para diferentes destinos na rede?
É simples criar um arquivo batch (.bat) com o comando Robocopy para copiar dados em diferentes endereços de armazenamento na rede.
Para fazer isso, você precisa especificar os caminhos de origem e destino apropriados no arquivo .bat para cada operação de cópia que você deseja realizar.
Exemplo para a criação de um arquivo batch:
Abra um editor de texto, como o Bloco de notas, e crie um novo arquivo de texto.
Insira as linhas de comando Robocopy para cada operação de cópia. Por exemplo:
robocopy C:\Origem1 \\Servidor1\Destino1 /E /R:3 /W:5
robocopy C:\Origem2 \\Servidor2\Destino2 /E /R:3 /W:5
robocopy C:\Origem3 \\Servidor3\Destino3 /E /R:3 /W:5
Neste exemplo serão copiados dados de três pastas locais (C:\Origem1, C:\Origem2, C:\Origem3) para três endereços de armazenamento na rede (\Servidor1\Destino1, \Servidor2\Destino2, \Servidor3\Destino3).
O parâmetro /E copia todos os subdiretórios, incluindo os vazios, enquanto /R:3 e /W:5 definem o número de tentativas de cópia em caso de falha e o tempo de espera entre as tentativas, respectivamente.
Salve o arquivo de texto com a extensão .bat, por exemplo, backup.bat. Para executar o arquivo, basta dar um duplo clique nele ou executá-lo a partir do prompt de comando.
Lembre-se de que é necessário ter as permissões adequadas para acessar e escrever nos endereços de armazenamento na rede.
O Robocopy pode ser considerado um software de backup?
Apesar de útil, o robocopy é um comando do sistema operacional e está limitado à cópia arquivos e diretórios. Isso significa que ele não tem a capacidade de fazer backup de sistemas inteiros.
O comando também não foi idealizado para gerar imagens de disco, cópias bare-metal ou possui outras soluções que permitem restaurar um sistema inteiro, incluindo o sistema operacional e aplicativos.
Outras limitações do comando são:
Ausência de versionamento: O comando não possui recursos para controle de versionamento, ou seja, não permite controlar várias versões de um arquivo.
Não controlar as cópias pode ser um problema caso seja necessário recuperar uma versão específica de um arquivo após uma alteração indesejada.
O comando não possui recursos para backup: O Robocopy não é um software de backup, por isso não permite a compactação de dados, criptografia, deduplicação ou suporta unidades de armazenamento em fita.
Erros não detectados: O comando não detecta ou informa todos os erros que ocorrem durante a cópia, especialmente se você não usar as partículas adequadas como /R (número de tentativas) e /W (tempo de espera).
Falta de interface amigável: Por ser um comando de cópia, o Robocopy não possui uma interface gráfica para gerenciamento.
Isso pode dificultar o uso para usuários menos experientes ou tornar mais difícil a configuração e o monitoramento de operações de cópia complexas.
Não é uma solução multiplataforma: O Robocopy é um comando Windows, por isso não está disponível nativamente em outros sistemas operacionais como Linux ou macOS. Isso limita sua aplicabilidade a ambientes com diferentes sistemas operacionais.
Sem recursos para gerenciamento de cópia: Por não ser um software de backup, o Robocopy não possui um console centralizado para gerenciar o backup e restaurações.
O comando ajuda a copiar dados temporariamente, mas não tem como objetivo substituir uma solução de backup.
Para esses casos é recomendável adotar uma solução de backup dedicada com um storage NAS, preferencialmente associado a algum serviço de nuvem (backup 3-2-1).
Qual a melhor opção para proteger meus dados copiados?
Mesmo usando o comando robocopy para duplicar uma base, lembre-se que é fortemente recomendado manter qualquer cópia de dados fora do ambiente de produção.
Como determinar o destino dos dados do backup depende de cada aplicação e dos recursos disponíveis, sugerimos usar:
Disco rígido externo: Um HD externo não é a melhor solução para salvar dados importantes, mas é portátil e fácil de usar.
Um disco permite fazer backup dos arquivos localmente, mas não pode ser o local definitivo para manter suas cópias de segurança.
NAS (Network Attached Storage): Um NAS é um servidor de armazenamento conectado à rede, que possui componentes redundantes e é muito mais confiável que um hard disk.
Esses equipamentos podem ter vários hard disks e gravar as informações em duplicidade, além de centralizar o backup de vários dispositivos.
Servidor de backup: Caso sua empresa possua uma infraestrutura de TI maior, possivelmente ela pode ter um servidor de backup local dedicado.
Esses sistemas podem ser servidores de aplicação ou storages, que centralizam o gerenciamento e o armazenamento de todos os backups.
Armazenamento em nuvem: Usar um serviço de nuvem como Amazon S3, Google Cloud Storage ou Microsoft Azure permite armazenar dados de backup fora do ambiente local.
Essa alternativa é ótima para complementar a estratégia de backup local, pois pode criar uma camada extra de proteção contra desastres locais, como incêndios ou inundações.
Serviços de backup em nuvem: Existem muitos serviços de backup em nuvem disponíveis, como Backblaze, Carbonite ou CrashPlan, que fornecem soluções de backup automatizadas na nuvem.
O problema é que esses serviços são cobrados mensalmente, exigem investimento em conexões rápidas de banda larga e, caso haja algum imprevisto, demoram mais para restaurar o ambiente que um backup server local.
As soluções profissionais de backup
Embora seja uma ferramenta útil para tarefas de cópia e sincronização, o Robocopy não foi projetado para ser uma solução de backup completa e pode não oferecer a proteção necessária para seus dados valiosos.
Em vez de confiar exclusivamente nos dados copiados por uma linha de comando, lembre-se que é altamente recomendável buscar alguma ferramenta de cópia mais robusta e confiável.
Os storages NAS oferecem armazenamento e backup centralizado, possuem ferramentas para gerenciamento e suportam vários dispositivos, como servidores de aplicação, storages, computadores e dispositivos móveis.
Além disso, muitos modelos incluem softwares corporativos para backup, com recursos de versionamento, criptografia e sincronização dos dados com a nuvem.
Somos especialistas em servidores, sistemas de armazenamento e backup
O comando Robocopy é uma ferramenta útil para copiar arquivos, mas não deve ser a principal solução de backup para um ambiente corporativo.
Improvisos sempre custam caro, lembre-se que depender de cópias manuais ou soluções paliativas de cópia podem resultar na perda de dados.
Ao optar por um NAS, seus dados estarão mais protegidos e com recursos profissionais para a recuperação de desastres.
Traga seu projeto e tire suas dúvidas. Somos distribuidores Seagate, Western Digital, Qnap, Synology e Infortrend.
Backup
Tudo o que você precisa saber sobre soluções de Backup.
RAID ou Disk Array: Conheça os tipos de Arranjos de Discos
Por que montar um arranjo de discos RAID? Saiba mais porque discos trabalhando em conjunto podem ajudar sua empresa ou residência.
Servidor NAS, conheça os conceitos básicos sobre o assunto.
Network attached storage: O que é, para que serve e como surgiu. Informações sobre o sistema de armazenamento de maior sucesso no mercado de TI.
O que é um Storage de alta disponibilidade (HA)?
O que é um Storage de alta disponibilidade (HA)? Conheça nossas soluções resistentes a falhas de hardware, software e energia e não perca mais dados.