Automatizando compactação por prompt no Windows Server

Hoje em dia é comum a automatização de procedimentos em servidores, tais como o famoso backup de arquivos. Recentemente implementei um script para realizar cópias de arquivos e diretórios que possuam alguma importância em meu servidor de aplicação. Bom a tarefa de copiar os arquivos e diretórios disponibilizei em um outro artigo que pode ser visto clicando aqui.

Como faremos o cenário?, consideramos que o script de backup já foi implementado e que o WINRAR já esta instalado no servidor que esta fazendo o backup.

Tudo que foi realizado no backup consideramos que esta no diretório C:\BACKUP\.

Então abra um bloco de notas e salve o arquivo como backup.bat

e insira o seguinte comando:

“C:\Arquivos de programas\WinRAR\Rar.exe” A -agDD-MM-YYYY -r C:\BACKUP\Backup_Teste_ @”C:\Scripts\Lista-Compactar.lst”

Salve e feche o arquivo.

Agora vamos entender a sintaxe:

“C:\Arquivos de programas\WinRAR\Rar.exe” -> esta indicando o caminho do executável do WinRAR
A> é um parâmetro de ação que adiciona arquivos para o arquivo compactado
-agDD-MM-YYYY -> é uma opção para inserir no final do nome do arquivo Rar a data que no meu exemplo ficaria assim Backup_Teste_16-06-15.rar
-r -> retorna os subdiretórios
C:\BACKUP\Backup_Teste_ -> indica o nome do arquivo compactado em seu destino que deseja que neste exemplo o Backup_Teste_16-06-15.rar  ficará dentro do diretório C -> Backup.

e por fim

@”C:\Scripts\Lista-Compactar.lst” -> é uma variável bacana que faremos, é a indicação de uma lista de extensões que dizemos para que seja compactado. Pensamos o seguinte vc coloca esse script para rodar diariamente e se não conter esta lista todo santo dia ele ira compactar tudo que esta no diretório C:\BACKUP e todos os dias terá um arquivo rar a mais e por exemplo ao executar no dia 16 o rar ele ira adicionar todos os rar que estão neste diretório e não queremos isso, apenas que compacte tudo que esta em C:\BACKUP menos os come extensão rar.

Então vamos preparar nossa lista

Abra o bloco de notas e salve como Lista-Compactar.lst e insira as extensões que deseja compactar e os diretórios.  Eu salvei o arquivo no seguinte diretório: C:\Scripts\, para mostrar no comando que quando o lst não se encontra no mesmo diretório do bat vc deve colocar em aspas e identificar o caminho completo.

no meu caso eu coloquei o que precisava e ficou assim:

C:\BACKUP\*.fdb
C:\BACKUP\*.log
C:\BACKUP\Simatex

Arquivo lst

Arquivo lst

Salve e feche o arquivo.

E para manter limpo o nosso diretório do BACKUP colocamos em nosso backup.bat abaixo do comando do WinRar as seguintes linhas:

del /s C:\BACKUP\*.fdb
del /s C:\BACKUP\*.log
rd /S /Q C:\BACKUP\Simatex

Para apagar todos os arquivos com extensões .fdb e .log e remover o diretório Simatex.

Vale ressaltar que o parâmetro /S usado no rd é para deletar todas as pastas e arquivos da pasta indicada e o /Q é um modo silencioso para não pedir a confirmação para remover a árvore de pastas indicada na linha.

Parâmetros do comando rd

Parâmetros do comando rd

O arquivo final ficaria assim:

Script para compactar arquivos e diretórios com RAR

Script para compactar arquivos e diretórios com RAR

Após terminarmos nosso script vamos inserir essa rotina diariamente, em meu caso aqui eu fiz o passo a passo no Windows Server 2003.

Abra o Assistente de tarefa agendada através do seguinte caminho: Iniciar -> Programas -> AcessóriosFerramentas do Sistema -> Tarefas Agendadas

Caminho para abrir o Assistente de Tarefas Agendadas do Windows

Caminho para abrir o Assistente de Tarefas Agendadas do Windows

Abrira o explorer de Tarefas Agendadas e clique em “Adicionar tarefa agendada”, após isso ira iniciar o Assistente e clique em “Avançar”.

Iniciando o Assistente de Tarefas Agendadas

Iniciando o Assistente de Tarefas Agendadas

 

Na próxima janela do assistente clique em “Procurar” e abrira a opção para que seja selecionado o arquivo a agendar que em nosso caso é o Backup.bat que esta em C:\Backup, selecione o .bat e clique em abrir.

Selecionando o Script .bat

Selecionando o Script .bat

 

Agora escolha a opção que mais atende sua necessidade, em nosso caso iremos optar por executar a tarefa diariamente, mas também pode ser executada semanalmente, mensalmente, somente uma vez, ao iniciar o computador e ao fazer logon. E clique em “Avançar”.

Escolhendo a opção para execução da tarefa

Escolhendo a opção para execução da tarefa

 

Após avançar será possível escolher a hora de início, e se executará a tarefa todos os dias, durante a semana ou intervalos de dias, e escolher a data que terá inicio a execução.

Escolheremos então executar como exemplo optamos para executar a 0h02, todos os dias e iniciar a partir do dia 16/6/2015. e clique em “Avançar”.

c

Frequência da execução

E por fim será mostrado um resumo das ações. Clique em “Concluir” e esta finalizado o assistente.

Conclusão do Assistente

Conclusão do Assistente

 

Bom espero poder ter ajudado..

 

Gde Abç

 

Deixe sua opnião, avalie este post

Fernando Oliveira

Tecnólogo em Informática, Pós graduado em Mídias Digitais (CESUMAR) e Informática em Saúde (UNIFESP), MCP, MTA Redes, ITIL, Google Adwords e Analytics, ISO/IEC 20000, ISO/IEC 27002, Cloud Computing. Exin Certified Integrator Secure Cloud Services, Scrum e Six Sigma White e Yellow Belt.

8 Comentários

  1. Juscelino

    Perfeito Fernando. Que tutorial fantástico, claro e completo. Parabéns

    Responder
    1. Fernando OliveiraFernando Oliveira (Publicações do Autor)

      Boa tarde Juscelino, tudo jóia?
      Obrigado mesmo, se eu consegui te ajudar, então valeu a pena fazer o tutorial e deixar aqui no meu blog.
      Este passo a passo me ajudou muito em um servidor que tinha que gerenciar o backup sendo Windows Server, para outro Windows Server e ainda mandar este backup para uma máquina linux, tudo se comunicando com chave.
      Obrigado pelo acesso no site.
      gde abç

      Responder
  2. Leandro

    Olá, gostaria de tirar uma dúvida.

    No arquivo Lista-Compactar.lst – você lista as exatas pastas que deseja compactar.
    E se por ventura eu tiver pastas como:
    Setor1 2016-12-01
    Setor1 2016-12-02

    Setor2 2016-12-01
    Setor2 2016-12-02

    E eu necessitar inserir o parâmetro de data também nessa lista.
    Existe como? Ou somente apontando a exata pasta?

    Responder
    1. Fernando OliveiraFernando Oliveira (Publicações do Autor)

      Boa tarde Leandro, desculpe a demora.

      Leandro o uso de variáveis é mais conhecido no mundo Linux, então por não encontrar muitos manuais a respeito eu utilizei o endereço das pastas exatas, e ai criei uma bat que copiava aquela pasta para meu diretório de backups mensais.
      Para variar era linux, então lá tinha um script que criava a pasta do dia, e fazia essa organização.

      Tem um post que publiquei como copiar de um lado para o outro usando chave, bem bacana, tanto para linux quanto para windows.

      Como o parque era bem diversificado acabava meio que uma orquestra tudo agendado e viviam arquivos circulando para um lado e para o outro pela madrugada a fora.

      gde abç

      Responder
  3. Gerson Amaral

    Com esse mesmo comando , para compactar com a senha no .rar

    Responder
  4. Fernando OliveiraFernando Oliveira (Publicações do Autor)

    Olá Gerson, obrigado pela visita no blog.
    Não entendi, vc conseguiu usar esta função compactando com senha o arquivo .rar??

    gde abç

    Responder
  5. Leonardo

    Parabéns pelo tutorial Fernando.

    Eu consigo adicionar arquivos em um arquivo já compactado via bat?

    Responder
  6. Fernando OliveiraFernando Oliveira (Publicações do Autor)

    Bom dia Leonardo tudo bem ?

    Olha não tentei ainda, porém acredito que seja possível sim, da uma ohada no help do rar no prompt, pois ele é uma ferramenta muito bacana.

    Vou colocar na minha lista de itens para os próximos artigos, estou voltando a trabalhar com infra, então volto a ter recursos para continuar a publicar mais soluções.

    gde abç

    Responder

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *