Pular para o conteúdo principal

Script Backup no Linux

Salve galera!
Estava precisando implementar um script de backup, então andei fuçando e achei esse blog com esse maravilhoso Script que implemento ainda mais o meu. 
:)
Vai a dica.. 
Fonte: http://www.yeslinux.com.br/?p=200#comment-331
UPDATE 27/03/2012 23:25Atualizando o script de backup.

#!/bin/bash
#******************************
#Está incluido nesse backup
#-Bandos de dados
#-Arquivos do SVN
#-Esse Script
#Tomar como rotina sempre efetuar os testes no backup para ter certeza que ele poderá ser restaurado


#*******************************************************************************
#echo "Apagando arquivos com mais de 5 dias arquivados..."
#Variavel para a data.
dia=`date +%d-%m-%y`

# Inicia o processo de escrita do log
# Os arquivos que tenham mais de 5 dias na pasta /home/pasta_a_verificar serao listados e gravados no log
find /home/backup -ctime +5 >> /var/log/arquivos_apagados.log
# deleta os arquivos com mais de 5 dias
#echo "Procurando e apagamento arquivos"
find /home/backup -ctime +5 -exec rm -rf {} \;
# Envia o conteudo do log para seu e-mail
#cat /var/log/arquivos_apagados.log | mail -s "Arquivos apagados e agenda para deletar no proximo dia" charles.reitz@gmail.com -c charles.reitz@gmail.com
#*******************************************************************************
#*******************************************************************************
# define as variaveis com o formato do nome do arquivo de backup
NARQUIVO="`date +%d%m%Y_%H%M`-DB_LocalHost_TodasAsBases"  
NARQUIVOSVN="`date +%d%m%Y_%H%M`-SVN_LocalHost_(projetos)" 
NARQUIVOSCRIPT="`date +%d%m%Y_%H%M`-SCRIPT_LolcalHost" 
#*******************************************************************************
#INICIO BACKUP BANCO DE DADOS MYSQL
#*******************************************************************************
# utiliza o programa mysqldump para efetuar backup no banco de dados do servidor de MySQL,
# direcionando a saída para o arquivo de backup em si. O sinal '&&' no final do 
# comando significa que o próximo comando só será executado caso este seja realizado
# com sucesso.
#echo "Executando backup banco de dados LOCAL [TODAS AS BASES]....."
mysqldump --host=localhost --user=user--password=123--all-databases > /home/backup/$NARQUIVO.sql
#echo "Compactando arquivos...."
#targiando o arquivo para que não fique muito grande e comer a banda da lan
tar -cvzf /home/backup/bd/$NARQUIVO.tar.gz /var/backup/$NARQUIVO.sql


#echo "Removendo arquivos originais (.sql)..."
# removendo o arquivos  para liberar espaço
#rm -f /var/backup/$NARQUIVO.sql
rm -f /home/backup/*.sql
# espere por 90 segundos 
#sleep 90
#*******************************************************************************
#FIM BACKUP DOS BANCOS DE DADOS
#******************************************************************************


#******************************************************************************
#INICIA BACKUP DOS ARQUIVOS DO SVN
#*******************************************************************************
#echo "Fazendo o backup dos arquivos do SVN subversion"
tar -cvzf /home/backup/svn/$NARQUIVOSVN.tar.gz /projetos
#*******************************************************************************
#FIM BACKUP ARQUIVOS SN
#*******************************************************************************


#******************************************************************************
#INICIA BACKUP ARQUIVO SCRIPT
#*******************************************************************************
#echo "Criando Backup do SCRIPT"
tar -cvzf /home/backup/script/$NARQUIVOSCRIPT.tar.gz /etc/backup
#*******************************************************************************
#FIM BACKUP ARQUIVOS SCRIPT
#*****************************************************************************


#*****************************************************************************
#INICIA BACKUP DE TODOS OS ARQUIVOS PARA O FTP
#*******************************************************************************
#echo "Fazendo backup para o FTP"
#FTPSERVER="ftp.seusite.com.br"
#USERNAME="user"
#PASSWORD="123"
#LOCALDIRNARQUIVO="/var/backup/bd"
#LOCALDIRNARQUIVOSVN="/var/backup/svn"
#LOCALDIRNARQUIVOSCRIPT="/var/backup/script"
#PASTA="backup"


# conecte-se ao servidor FTP e envie o arquivo
#ftp -inv $FTPSERVER <<EOF
#user $USERNAME $PASSWORD
#binary
#lcd $LOCALDIRNARQUIVO
#cd $PASTA
#mdelete *.tar.gz
#put $NARQUIVO.tar.gz


#lcd $LOCALDIRNARQUIVOSVN
#put $NARQUIVOSVN.tar.gz


#lcd $LOCALDIRNARQUIVOSVN
#put $NARQUIVOSVNP.tar.gz


#lcd $LOCALDIRNARQUIVOSCRIPT
#put $NARQUIVOSCRIPT.tar.gz
#bye
#EOF
#*******************************************************************************

As linhas com # estão comentadas pois eu não estou utilizando, porém deixei disponível para quem quizer implementar.

As linhas comendas que possuem ECHO dão saida na tela, porém estão comentadas pois no meu caso elas não estavam funcionando com o CRONTAB. Alias para colocar esse script no CRONTAB. No terminal digite:

root@server:/etc/backup# crontab -e


0 * * * * /etc/webmin/bandwidth/rotate.pl #todos os dias a meia noite
0 12 * * * /etc/backup/backup.sh  #todos os dias as 12:00
0 18 * * * /etc/backup/backup.sh #todos os dias as 18:00
0 22 * * * /etc/backup/backup.sh #todos os dias as 22:00

Estrutura de pastas:
/etc/backup/backup.sh - Local onde fica o script de backup
/home/backup/bd - Local onde fica o arquivo zipado do banco de dados
/home/backup/svn - Local onde fica o arquivo zipado do SUBVERSION
/home/backup/script - Sim eu faço backup do script também! rss...

Lembrando que deve-ser dar permissão 777 para o script de backup
CHMOD 777 /etc/backup/backup.sh




Postagens mais visitadas deste blog

REST Protheus Converter charset CP1252 para UTF8 com Header Accept UTF-8

O Protheus possui um tag que pode ser utilizada para conversão para UTF8 de forma transparente, basta enviar no header da requisição a TAG ACCEPT com charset=UTF-8, também pode-se adicionar o appllication/json. Accept : application/json; charset=UTF-8 ou Accept : charset=UTF-8 Isso ajuda pois não precisa mais utilizar as funções DecodeUTF8 e EncodeUT8 pois o próprio rest já vai fazer isso.

Recursividade Minha Linda! Estrutura Produtos Protheus SG1

Fato! Depois que você conhece recursividade em sua vida tudo fica mais leve (rss... ) a recursividade pode ser infinita (pode não ta!) se for infinita vai dar problema, não pode. Mas a recursividade nos ajuda a deixar nosso sistema mais flexível e dinâmico para montar uma série de regras de negócio. Hoje vou falar exatamente da SG1, tabela TOTVS Microsiga Protheus que é utilizada para montar a estrutura de um produto dentro PCP (Planejamento e Controle de Produção). Isso séria algo que a recursividade iria ajudar. Na SG1 temos o campos G1_COD (Pai) e G1_COMP (Filho). G1_COD->G1_COMP->G1_COD->G1_COMP->G1_COD->G1_COMP Seria assim o fluxo da informação. Sem mais delongas, abaixo vou deixar o script para MSSQL para apresentar esses dados. Inté! WITH ESTRUT( CODIGO, COD_PAI, COD_COMP, QTD, PERDA, DT_INI, DT_FIM ,TRT ,RECNO, NIVEL ) AS ( SELECT G1_COD PAI, G1_COD, G1_COMP, G1_QUANT, G1_PERDA, G1_INI, G1_FIM,G1_TRT,SG1.R_E_C_N_O_, 1 AS NIVEL FR

Cadastro de funções ADVPL

FWDirRemove( cDir, nType, lComplete, lKillFiles ) Função para remover diretórios, com a vantagem de remover somente o ultimo nível ou todo o caminho. cDir                   Diretório a ser removido lComplete          Remove todo o caminho (.T.) ou apenas o ultimo nível (.F.) lKillFiles             Remove os arquivos antes de tentar remover o diretório FWMakeDir( cDir, lShowMsg ) Função para criar diretório com seus subdiretórios, com a vantagem de criar todo o caminho. cDir                    Diretório a ser criado lShowMsg          Exibe ou não mensagem caso não consiga criar o diretório FwNoAccent( cString ) Retira acentos de uma string cString                 String a ser retirado os acentos Exemplo: cString := 'O avião não pôde aterrissar de manhã' cString := FwNoAccent( cString ) // Retorna : 'O aviao nao pode aterrissar de manha' FWGetSX5( cTable, cKey ) Função de retorno dos campos de uma tabela no SX5 cTable                  Tabela para pesquisa no SX5. Par