Backup automático MySQL + arquivos do servidor web
Publicado por Antonio Schiavon (última atualização em 12/09/2012)
[ Hits: 14.198 ]
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
Prompt Interativo para o Legendary
Descubra o event correspondente ao seu dispositivo
Configuração pós instalação do Slackware
Automatizando autenticação do Speedy Business
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Overclocking Permanente para Drastic no Miyoo Mini Plus
Problemas de chaves (/usr/share/keyrings) no Debian
Converter os repositórios Debian para o novo formato com as chaves
E aí? O Warsaw já está funcionando no Debian 13? (11)
Problema com o Centro de Aplicativos Ubuntu 25.04 (5)
Impressora Elgin/Bematech - MP4200HS - Via serrvidor CUPS (0)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (6)