Anonim

Os usuários de computadores que cresceram com computadores avançados Mac e Windows podem não estar cientes disso, mas uma vez, há muito tempo, todos os computadores pessoais eram controlados usando uma interface de linha de comando. Sim, essa caixa de comando desajeitada em sua máquina Windows costumava ser literalmente a única maneira pela qual as pessoas interagiam com um computador. As interfaces de linha de comando dependiam muito de pequenos programas chamados 'scripts', que eram coleções de comandos do sistema operacional usados ​​para executar tarefas comuns.

Embora as interfaces gráficas de usuário dos PCs atuais sejam anos-luz mais sofisticadas e fáceis de usar do que as antigas linhas de comando, ainda existem usos para o método mais antigo de controlar o seu computador. Um dos aplicativos mais comuns e adequados para um script de linha de comando é o backup de dados. Os scripts de linha de comando podem ser automatizados para execução a qualquer momento, sem interação humana e possuem poucas limitações. O melhor de tudo é que eles fazem parte do sistema operacional Windows.

Por que scripts de linha de comando?

Por que usar um script de linha de comando quando existem programas de backup comercial e gratuito por aí? Bem, scripts de linha de comando têm várias vantagens exclusivas. Aqui estão alguns deles:

  • Comandos nativos : Qual a melhor maneira de fazer backup de dados do que usando as funções disponibilizadas pelo programa que cria os dados? Seja este o sistema operacional em si, através de um simples comando de cópia de arquivo ou de um banco de dados para produzir um arquivo binário restaurável, o programa de origem sabe como fazer o backup.
  • Controle final : como um script de linha de comando segue um procedimento passo a passo simples, você sabe exatamente o que está acontecendo e pode modificar facilmente o comportamento.
  • Rápido : Como tudo é um comando nativo, nada está sujeito a interpretação. Novamente, você está usando comandos fornecidos pelo próprio programa, para que a sobrecarga seja mantida no mínimo.
  • Poderoso : ainda não vi uma tarefa de backup que não pode ser realizada por meio de um script de linha de comando … e fiz algumas coisas divertidas. Embora você possa ter que fazer alguma pesquisa, tentativa e erro, se você tiver necessidades realmente únicas, normalmente as funções e os recursos internos da linguagem de script que você está usando são mais do que suficientes.
  • Grátis e flexível : obviamente, um script de linha de comando não custa nada (fora do tempo para desenvolvê-lo); portanto, você pode copiar seus scripts para qualquer número de máquinas e sistemas com pouco ou nenhum tempo ou custo. Compare isso com o custo da compra de licenças para software de backup em vários servidores e / ou computadores de mesa.

Uma visão geral rápida do script de lote de backup

A maioria das pessoas nunca aprendeu a usar scripts de linha de comando e isso é considerado uma espécie de "arte negra". No entanto, é realmente uma coisa muito simples de aprender. Para demonstrar o poder da linha de comando, estou fornecendo um script em lote simples do Windows que você pode usar para fazer backup de seus dados importantes. Esse script configurável e personalizável não requer nenhum conhecimento (ou vontade de aprender) da linguagem de script em lote do Windows, mas se você decidir aprender mais sobre scripts em lote do Windows, encontrará esse script como um bom ponto de partida .

O que o script de backup faz:

  1. Cria backups incrementais completos ou diários (veja uma definição abaixo) de arquivos e pastas especificados em um arquivo de texto de configuração separado (veja abaixo).
    • Quando uma pasta é nomeada, é feito o backup dessa pasta e de todas as subpastas.
    • Quando um arquivo é nomeado, apenas é feito o backup desse arquivo.
  2. Compacta (fecha) os arquivos de backup. Depois que todos os arquivos para backup são copiados, eles são compactados para economizar espaço. É necessário que o 7-Zip esteja instalado no seu sistema para que isso funcione.
  3. Data o arquivo compactado e move-o para um local de armazenamento. Depois que os arquivos de backup são compactados, o arquivo resultante recebe um nome de arquivo de acordo com a data atual e depois é movido para um local de armazenamento configurado, como uma unidade externa ou um local de rede.
  4. Limpa depois de si. Após a conclusão de todas as tarefas, o script em lote limpa todos os arquivos temporários criados.

Requisitos:
Windows 2000 / XP / 2003 / Vista ou mais recente
7-Zip (é grátis)

Arquivo de configuração:
O arquivo de configuração é simplesmente um arquivo de texto que contém arquivos e pastas para backup, inseridos em um item de backup por linha. Este arquivo deve ter o nome “BackupConfig.txt” e estar localizado na mesma pasta que o script de backup. Aqui está um exemplo de um arquivo BackupConfig.txt (observe que o caractere "#" na primeira linha indica que a linha é um comentário; os comentários são sempre ignorados quando o script é executado):

# Digite os nomes de arquivos e pastas, um por linha.
C: \ Documentos e configurações \ Jason Faulkner \ Desktop C: \ Documentos e configurações \ Jason Faulkner \ Meus documentos \ Arquivos importantes C: \ Scripts \ BackupScript.bat

O exemplo acima faria backup da área de trabalho do usuário do Windows Jason Faulkner (e de todas as pastas da área de trabalho), a pasta chamada "Arquivos importantes" dentro de Meus documentos (e todas as pastas dentro de "Arquivos importantes") e o arquivo "BackupScript.bat" dentro o diretório C: \ Scripts.

Tipos de backups:

  • Backup completo: Uma cópia completa de todos os arquivos e pastas (incluindo subpastas) está incluída no backup.
  • Backup incremental: quando uma pasta é fornecida, apenas os arquivos criados ou modificados na data atual são
    backup. Quando um arquivo é fornecido, sempre é feito backup, independentemente de quando foi modificado.

O script de lote do Windows para backup de dados

Quero enfatizar que este script é muito básico, pois tudo o que faz é criar backups utilizando uma cópia de arquivo simples. Existem algumas opções de configuração que você pode definir:

  • O local de armazenamento de backup em que os arquivos de backup compactados resultantes são armazenados.
  • O dia da semana em que o backup completo é executado (qualquer outro dia executaria um backup incremental).
  • Local de instalação do 7-Zip no seu computador. O script é definido automaticamente para procurar no local padrão.

Se você tiver alguma sugestão ou solicitação de recurso, comente abaixo. Eu realmente adoraria fazer um artigo de acompanhamento deste post, que apresenta um script atualizado com base nas informações do leitor. Se você precisar de instruções sobre como "usar" esse script ou configurar uma tarefa agendada, consulte os links abaixo da fonte do script.

Sem mais delongas, aqui está:

Nota : Como as aspas não são exibidas corretamente abaixo (e, como resultado, podem atrapalhar o script), incluí um link de texto sem formatação abaixo do script, que você pode usar para obter uma fonte precisa da qual copiar.

@ECHO OFF REM BackupScript REM Versão 1.01, Atualizado em: 2008-05-21 REM Por Jason Faulkner (articles132solutions.com) REM Executa backups completos ou incrementais de pastas e arquivos configurados pelo usuário. Uso do REM --- REM> BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM --- Opções de configuração --- REM Local da pasta onde você deseja armazenar o arquivo de backup resultante. REM Esta pasta deve existir. Não coloque um '\' no final, isso será adicionado automaticamente. REM Você pode inserir um caminho local, uma letra de unidade externa (ex. F :) ou um local de rede (ex. \\ server \ backups) SET BackupStorage = C: \ Backup REM Em que dia da semana você deseja executar um backup completo em? REM Digite um dos seguintes: Dom, Seg, Ter, Qua, Qui, Sex, Sáb, * REM Qualquer dia da semana que não seja o especificado abaixo, executará um backup incremental. REM Se você digitar '*', um backup completo será executado sempre. SET FullBackupDay = * Local do REM onde o 7-Zip está instalado no seu computador. REM O padrão está em uma pasta '7-Zip' no diretório Arquivos de Programas. SET InstallLocationOf7Zip =% ProgramFiles% \ 7-Zip REM + -------------------------------------- --------------------------------- + REM | Não altere nada abaixo aqui, a menos que você saiba o que está fazendo. | REM + ------------------------------------------------ ----------------------- + Variáveis ​​de uso do REM. SET exe7Zip =% InstallLocationOf7Zip% \ 7z.exe SET dirTempBackup =% TEMP% \ backup SET filBackupConfig = Validação REM do BackupConfig.txt. SE NÃO EXISTE% filBackupConfig% (ECHO Nenhum arquivo de configuração encontrado, ausente:% filBackupConfig% GOTO End) SE NÃO EXISTE "% exe7Zip%" (o ECHO 7-Zip não está instalado no local:% dir7Zip% ECHO Atualize o diretório em que O 7-Zip está instalado. GOTO End) Variáveis ​​de backup REM. FOR / f "tokens = 1, 2, 3, 4 delimitações = /" %% a IN ('data / t') DO (SET DayOfWeek = %% a SET NowDate = %% d - %% b - %% c SET FileDate = %% b - %% c - %% d) SE {% FullBackupDay%} == {*} SET FullBackupDay =% DayOfWeek% IF / i {% FullBackupDay%} == {% DayOfWeek%} (SET txtBackup = SET completo swXCopy = / e) ELSE (SET txtBackup = SET incremental swXCopy = / s / d:% FileDate%) ECHO Começando a copiar arquivos. SE NÃO EXISTIR "% dirTempBackup%" MKDIR "% dirTempBackup%" FOR / f "pular = 1 fichas = *" %% A IN (% filBackupConfig%) DO (SET Atual = %% ~ A SE NÃO EXISTIR "! Atual! "(ERRO DO ECHO! Não encontrado:! Atual!) ELSE (Cópia do ECHO:! Atual! SET Destino =% dirTempBackup% \! Atual: ~ 0, 1! %% ~ pnxA REM Determine se a entrada é um arquivo ou diretório. IF "%% ~ xA" == "" (Diretório REM. XCOPY "! Atual!" "! Destino!" / V / c / i / g / h / q / r / y% swXCopy%) ELSE (arquivo REM COPY / v / y "! Atual!" "! Destino!"))) ECHO Concluído copiando arquivos. ECO. SET BackupFileDestination =% BackupStorage% \ Backup_% FileDate% _% txtBackup% .zip REM Se o arquivo de backup existir, remova-o em favor do novo arquivo. SE EXISTIR "% BackupFileDestination%" DEL / f / q "% BackupFileDestination%" ECHO Compactação de arquivos de backup. (Nova janela) REM Compacta arquivos usando o 7-Zip em um processo de prioridade mais baixa. INICIAR "Compactando o backup. NÃO FECHE" / belownormal / aguarde "% exe7Zip%" a -tzip -r -mx5 "% BackupFileDestination%" "% dirTempBackup% \" ECHO Concluindo a compactação de arquivos de backup. ECO. ECHO Limpeza. SE EXISTIR "% dirTempBackup%" RMDIR / s / q "% dirTempBackup%" ECHO. : Fim ECHO Finalizado. ECO. ENDLOCAL

A fonte de texto sem formatação está disponível aqui: backup

Se você precisar de ajuda para começar a implementar esse script, aqui estão alguns links para ajudá-lo:

  • Como criar um arquivo em lote
  • Como criar uma tarefa agendada do Windows

Esse é o mesmo script que eu uso para fazer backup do meu computador diariamente (com algumas modificações, é claro), então eu sei que funciona muito bem. Espero que você ache útil.

Desfrutar!

Script em lote do Windows para fazer backup de dados