Recentemente contratei um plano de Hospedagem, onde subi o WordPress e o Glpi. Após ativar e configurar as aplicações me veio a preocupação do Backup, e então surgiu as dúvidas:
- Será que possui ferramenta de backup dos sites e banco automático dentro do CPanel?
- Será que tenho acesso a um Terminal no CPanel?
A necessidade é backup do banco e alguns directórios e arquivos da hospedagem.
Analisando as ferramentas disponíveis dentro do CPanel, não encontrei nenhuma ferramenta que gerasse o backup automático, porém o "Trabalho Cron" (8.
Pesquisando na FAQ da hospedagem sobre a utilização do Cron encontrei a descrição para utilizar Shell Script e Mysqldump:
1 2 3 4 |
# Executar Shell Script /bin/sh /home/username/public_html/file.sh # Dump do Banco Mysql mysqldump -u mysql_user -ppassword database_name > backup.sql |
Após testes gerando um "tar" dos directórios e dump do banco, com a rotina no Cron funcionou perfeitamente, após isso escrevi um Shell Script para gerar um tar dos directórios e dump das bases de dados.
1 - Estrutura dentro da hospedagem
Primeiramente necessário saber qual estrutura deseja utilizar, no meu caso tenho o directoria raiz e dentro criei a pasta backup, script e locais a serem depositado os backups, ficando conforme abaixo:
1 2 3 4 |
/home/hospedagem/backup/ /home/hospedagem/backup/backup.sh /home/hospedagem/backup/sites/ /home/hospedagem/backup/mysql/ |
2 - Definição dos locais e bases a serem feito backups
Definir quais os directórios e bases a colocados na rotina, no meu caso as duas bases wordpress e glpi, o directório inteiro do wordpress e dentro do glpi apenas o directório files, porem o script que irei apresentar é bem intuitivo para acrescentar directórios conforme necessidade.
3 - Shell Script
Abaixo o Shell Script que deve ser alterado conforme seu ambiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
#!/bin/sh #===============================================================================# # NOTA DE LICENÇA # # # # Este trabalho esta licenciado sob uma Licença Creative Commons # # Atribuição: Compartilhamento pela mesma Licença 3.0 Brasil. Para ver uma # # copia desta licença, visite http://creativecommons.org/licenses/by/3.0/br/ # # ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, # # San Francisco, California 94105, USA. # # ---------------------------------------------------------------------------- # # Autor: Jhones Petter | [email protected] em 31/01/2015 # # Descrição: Backup dos Sites e Bancos em Hospedagem, complemento com função # # PEGA_BACKUP para download dos arquivos e limpeza dos directórios. # # Data criação: 31/01/2015 # # Versao: 2.0 - (./backup_v2.sh) # # ----------------------------------------------------------------------------- # # Alterações: # # Jhones Petter - 03/02/2015 - Geração dos backups dos sites em único # # arquivo tarball, centralizando na variável DIRS. # #===============================================================================# dir_mysql="/home/hospedagem/backup/mysql" dir_sites="/home/hospedagem/backup/sites" tar="/home/hospedagem/backup/sites/hospedagem-sites-$(date "+%d%m%y").tar.gz" dir1="/home/hospedagem/public_html/directorio1" dir2="/home/hospedagem/backup/backup.sh" dir3="/home/hospedagem/public_html/directorio3" dirs="$dir1 $dir2 $dir3" gera_sql() { mysqldump -u nome_user_base1 -psenha_user_base1 nome_base1 | gzip > $dir_mysql/nome_base1-$(date "+%d%m%y").sql.gz mysqldump -u nome_user_base2 -psenha_user_base2 nome_base2 | gzip > $dir_mysql/nome_base2-$(date "+%d%m%y").sql.gz } gera_tar() { tar -vzcf $tar $dirs } gera_sql gera_tar exit |
Script simples, ágil, de fácil manipulação e entendimento, não coloquei saída de nenhum comando pois o CPanel quando executa o script manda um e-mail informando a execução junto com saída do script.
4 - Activar rotina no CPanel utilizando o Cron
Dentro de "Tarefas Cron" basta adicionar um novo trabalho, colocando a periodicidade de execução e o comando a ser executado e adicionar:
1 |
/bin/sh /home/hospedagem/backup/backup.sh |
Tarefas Cron
5 - Download dos arquivos tar
Pow gerar o backup dos locais e banco esta pronto, mas vou ter que baixar os arquivos manualmente?
Aqui como utilizo o Ubuntu em meu desktop, criei um outro script PEGA_BACKUP.sh e coloquei para executar no Cron, sua função é baixar os arquivos da hospedagem e limpar, abaixo o script que deve ser alterado conforme seu ambiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
#!/bin/sh #===============================================================================# # NOTA DE LICENÇA # # # # Este trabalho esta licenciado sob uma Licença Creative Commons # # Atribuição: Compartilhamento pela mesma Licença 3.0 Brasil. Para ver uma # # copia desta licença, visite http://creativecommons.org/licenses/by/3.0/br/ # # ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, # # San Francisco, California 94105, USA. # # ----------------------------------------------------------------------------- # # Autor: Jhones Petter | [email protected] em 31/01/2015 # # Descrição: Função PEGA_BACKUP para download dos arquivos e limpeza # # do directório. # # Data criação: 31/01/2015 # # Versão: 1.0 - (./pega_backup_v1.sh) # #===============================================================================# #!/bin/sh pega_backup() { host_ftp="ftp.seu_ftp.com.br" user_ftp="usuario_ftp" pass_ftp="senha_ftp" arqvos="*.gz" ftp -in << EOF open $host_ftp user $user_ftp $pass_ftp lcd /diretorio_local_em_seu_desktop/mysql cd mysql mget $arqvos mdelete $arqvos lcd /diretorio_local_em_seu_desktop/sites cd ../sites mget $arqvos mdelete $arqvos bye EOF } pega_backup exit |
Referências: