Backup automático MySQL + arquivos do servidor web
Publicado por Antonio Schiavon (última atualização em 12/09/2012)
[ Hits: 14.245 ]
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
Instalando a última versão do Adobe Flashplayer automaticamente
Hora certa - Observatório Nacional
Configuração do Modem Sony Ericsson MD300 da Claro 3G no Linux
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Alternativas ao Multilogin para gerenciamento de múltiplas contas/prof... (0)
Captação de áudio no zorin linux começa a diminuir com o tempo (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (0)
estou na 22.1 e não é atualizado pra 22.4 via "sudo full-upgrade&... (6)