De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Script de Backup via Rede

Colaboração: Smailli Hemori Moraes

Data de Publicação: 05 de Março de 2007

Já diria um brother meu "Sempre tenha backups". Grande Doca ;)

Você nunca sabe quando o seu servidor vai queimar, ser roubado ou sair para tomar uma gelada com os amigos, então sempre crie uma estratégia de backup.

Nessa dica estarei disponibilizando um script de backup via rede, logo mais vou fazer um via SSH.

O Compartilhamento

Você deve criar um compartilhamento em algum servidor, Samba ou Windows ou o que você preferir, apenas tenha um compartilhamento que pode ser acessado com o smbclient. No exemplo estamos utilizando o compartilhamento bkp.

Crie um usuário no mesmo servidor com permissão de gravar nesse compartilhamento. No exemplo estamos utilizando o usuário bkpuser.

Crie um diretório no seu servidor Linux onde irá criar o backup local. No exemplo estamos utilizando o diretório /home/backup.

O Script

Crie o seguinte shell script para o esquema de backup em /usr/local/bin/backup.sh.

  #!/bin/sh
  
  # Script de backup via rede
  # Smailli Hemori Moraes - vulgo ice
  # ice_blue@oscara.com.br
  # www.oscara.com.br/ice
  
  # Altere as variáveis conforme necessidade.
  
  NOMEBKP="backup.tar.gz" #Nome do pacote que o tar ira gerar.
  PASTABKP="/home/backup" #Pasta no linux onde sera gerado o backup.
  LISTABACKUP="/usr/local/etc/backup.conf" #Lista dos arquivos para fazer backup.
  LISTAEXCECAO="/usr/local/etc/backup_excecao.conf" #Lista de excecao de backup.
  USUARIO="bkp" #Usuario para conectar no compartilhamento.
  SENHA="S3nh4" #Senha do usuario para conectar no compartilhamento.
  IPSERVER="10.1.1.4" #Ip do servidor que sera mandado o pacote de backup.
  COMP="bkp" #Nome do compartilhamento no servidor que sera mandado o pacote de backup.
  MAIL="root" #e-mail que sera enviado informacoes do bkp
  MSGOK="Backup efetuado com sucesso no servidor" #Mensagem do backup completo sem erros.
  MSGERRO="Problema no backup do servidor" #Mensagem de erro no backup.
  LOG="/var/log/backup.log" #Arquivo de log.
  
  cd "$PASTABKP"
  
  if  tar -zcf "$NOMEBKP" -T "$LISTABACKUP" -X "$LISTAEXCECAO" ; then
  if smbclient //$IPSERVER/$COMP "$SENHA" -U $USUARIO -c 'lc '$PASTABKP'; prompt; mput '$NOMEBKP''; then
  echo -ne "Em `date`\n$MSGOK" | mail -s "$MSGOK" "$MAIL";
  echo -ne "Em `date`\n$MSGOK" >> $LOG;
  else
  echo -ne "Em `date`\n$MSGERRO" | mail -s "$MSGERRO" "$MAIL";
  echo -ne "Em `date`\n$MSGERRO" >> $LOG;
  exit 1
  fi
  else
  echo -ne "Em `date`\n$MSGERRO" | mail -s "$MSGERRO" "$MAIL";
  echo -ne "Em `date`\n$MSGERRO" >> $LOG;
  exit 1
  fi

O Backup

Crie um arquivo chamado /usr/local/etc/backup.conf e adicione o caminho dos arquivos/diretórios que serão feito backup. Um por linha.

  /etc/named.conf
  /var/named
  /etc/passwd
  /etc/shadow
  /etc/group
  /etc/httpd/conf/httpd.conf
  /etc/httpd/conf/passwd
  /etc/mail
  /etc/MailScanner
  /etc/squid
  /usr/local/bin/backup.sh

Crie um arquivo chamado /usr/local/etc/backup_excecao.conf e adicione o caminho dos arquivos/diretórios que serão exceção da lista acima. Um por linha.

  /etc/MailScanner/reports
  /var/named/chroot/proc

A Programação

Agora basta você adicionar o script de backup no crontab. No exemplo o backup será efetuado todo domingo às 13:00.

  00 13 * * 0 root /usr/local/sbin/backup.sh

O Relatório

Cada vez que o script for executado ele ira gerar um log no caminho definido pela variável LOG.

Cada vez que o script for executado ele ira gerar um e-mail com o resultado do backup e será enviado para o endereço definido pela variável MAIL.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Smailli Hemori Moraes