Backup automático MySQL + arquivos do servidor web
Publicado por Antonio Schiavon (última atualização em 12/09/2012)
[ Hits: 14.096 ]
Homepage: fb.com/antonio.schiavon
Criei este script a partir de buscas na web e até mesmo aqui no fórum, apesar de simples, facilita muito a nossa vida em relação a automatização dos backups. Utilizo este script para fazer backup de uma aplicação web em PHP com banco de dados MySQL utilizado na empresa na qual trabalho.
Funcionamento:
O script monta um pasta remota localmente, compacta a pasta do "sistema", exporta o banco do MySQL, cria uma pasta com a data atual na pasta montada e manda tudo lá pra dentro. Tudo usando variáveis para salvar nossas vidas. :)
Para que tudo funcione automaticamente, adicione uma regra no crontab (comando crontab -e) com o seguinte comando:
mm hh * * * sh /pasta/do/script/bkp.sh
Onde:
- mm = minuto
- hh = hora
Assim ele vai rodar o script todos os dias na hora que você configurou.
NÃO ESQUECER DE CONCEDER PERMISSÃO DE EXECUÇÃO NO SCRIPT:
chmod +x /pasta/do/script/bkp.sh
Como ele monta a pasta como cifs e autentica no AD, funciona tanto com pastas compartilhadas no GNU/Linux quanto no Windows, com AD ou com Samba.
Apesar de simples, o script é funcional.
Bom proveito a todos.
#!/bin/bash ######################### # Script criado por # # Antonio Schiavon # # Em 03/09/2012 # ######################### # AQUI DEFINIMOS AS VÁRIAVEIS NECESSÁRIAS (substitua os valores pelos respectivos dados de acesso a pasta remota). data=$(date '+%d-%m-%Y') dominio="dominio.com.br" user="administrador" senha="123456" pastaremota="//servidor/pasta/" pastalocal="/mnt/servidor/pasta/" pastasistema="/var/www/sistema/" pastatemp="/var/bkp" ipbanco="localhost" userbanco="root" senhabanco="" nomedobanco="sistema" # AQUI MONTAMOS A PASTA REMOTA LOCALMENTE mount -t cifs $pastaremota $pastalocal -o domain=$dominio,username=$user,password=$pass,iocharset=utf8,file_mode=0777,dir_mode=0777 # VERIFICAMOS SE PASTA TEMPORÁRIA DO BKP EXISTE, SE NÃO CRIA E ENTRA NELA, SE SIM SÓ ENTRA. if [ -d $pastatemp ]; then cd $pastatemp else mkdir $pastatemp cd $pastatemp fi # EXTRAI DADOS DO MYSQL mysqldump --host=$ipbanco --user=$userbanco --password=$senhabanco --databases $nomedobanco > banco-$data.sql #PODE USAR '--all-databases' APÓS 'banco-$data.sql' PARA FAZER BKP DE TODOS OS BANCOS # COMPACTA ARQUIVOS DO SISTEMA zip -r fontes-$data.zip $pastasistema # CRIA PASTA DO DIA ATUAL E MOVE ARQUIVOS PARA ELA if [ -d $pastalocal/bkps_sistema ]; then mkdir $pastalocal/bkps_sistema mkdir $pastalocal/bkps_sistema/$data/ mv banco-$data.sql $pastalocal/bkps_sistema/$data/ mv fontes-$data.zip $pastalocal/bkps_sistema/$data/ else mkdir $pastalocal/bkps_gepros/$data/ mv banco-$data.sql $pastalocal/bkps_sistema/$data/ mv fontes-$data.zip $pastalocal/bkps_sistema/$data/ fi
Script de instalação Servidor MTA Postfix + Openwebmail
Shell Script para Linux HOWTOs
Script em Dialog pesquisa nome do banco no mysql
SSH - Detecta ataque por brute force e bloqueia o IP do atacante.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Criar perfil temporário no Active Directory samba4-21 (2)
Meu Kubuntu não inicia, além do modo de recuperação (no meu dualboot (1)
Site da gontijo simplesmente não abre, ERR_HTTP2_PRO... (3)