você está aqui: Home  → Arquivo de Mensagens

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.



 

 

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

Opinião dos Leitores

Rafael
25 Fev 2015, 15:32
Muito bom o post aqui funcionou o arquivo vai para a pasta de bkp mais nao tranfere para a outra maquina no scrip tem a linha if smbclient //$IPSERVER/$COMP "$SENHA" -U $USUARIO -c 'lc '$PASTABKP'; prompt; mput '$NOMEBKP''; then

ai nao tranfere para a maquina windows que tenho pois o linux e o meu servidor samba tem algum outro comando que posso colocar no lugar da linha acima vlw
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script