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..
#!/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
#*******************************************************************************
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