Backup e Restore Zipado [RESOLVIDO]

1. Backup e Restore Zipado [RESOLVIDO]

Michell Henrique
chell

(usa Ubuntu)

Enviado em 25/02/2014 - 13:53h

Estou com problemas em criar um backup e restore do banco de dados via php,
este backup/restore ficará disponivel ao cliente que ficará responsavel
pelo backup de suas informações e poderá restaura-las quando julgar necessário,
provavelmente em caso de alguma perda no servidor. O único detalhe que gostaria
de incluir é a compactação com senha para evitar que pessoas com segundas intenções
tenham acesso as informações do BD. Durante minhas pesquisas cheguei a achar algumas
alternativas e acredito que a mais fácil e prática seria o backup através do terminal.
Alguém pode dar uma ajuda do que seria melhor ou se já fez alguma coisa parecida?

Link parecido de como seria feito via PHP:
http://www.vivaolinux.com.br/script/Backup-de-base-MYSQL-pelo-PHP

Link parecido de como seria feito via Terminal:
http://www.scriptcase.net/knowledge/index.php?/Knowledgebase/Article/View/220/7/backup-automatico-do...

Vlw Pessoal!


  


2. Solução Escolhida

Michell Henrique
chell

(usa Ubuntu)

Enviado em 26/02/2014 - 02:35h

Acabei por escolher e implementar o backup via terminal.
Se alguém futuramente tiver o mesmo problema eu utilizei
o mysqldump da seguinte maneira para realizar o backup:

1- Instalei o compactador ZIP:
#apt-get install zip

2- Solicito a Senha e a salvo em uma variavel chamada $senha

3- Executo no terminal usando shell_exec(); do php:
shell_exec("mysqldump -uroot -psuasenha --databases bd_para_backup | zip -P ".$senha." > /var/www/".$caminho."backup.zip");

observem que o $caminho é onde fica a pasta que você vai
salvar o backup do banco de dados. Se fosse em uma pasta
chamada backup dentro da raiz do seu site o caminho seria:

$caminho = 'backup/';

Bom, isso é o básico, procurei deixar bem simples pra todos entenderem.
Depois vou procurar a parte de restaurar o backup e posto aqui também.


3. Re: Backup e Restore Zipado [RESOLVIDO]

Michell Henrique
chell

(usa Ubuntu)

Enviado em 01/03/2014 - 10:41h

Para Finalizar o Topico Ficou Faltando o Restore Do Banco De Dados. Inicialmente Pensei em
fazer em apenas um comando, porem posteriormente vi que nao seria a melhor opção pois
as vezes o arqivo pode estar corrompido ou alterado então antes de importar os dados eu
realizo a extração dos banco upado através do comando:

unzip -o -P [senha] -d [caminho_da_extração] [caminho_do_arquivo]

Unzip para descompactar, -o para substituir caso já exista o arquivo com o mesmo nome, -P
para informar a senha, -d informa para qual pasta vai a extração e finalmente o arquivo zipado.

Depois de descompactado faço uma verificação no arquivo antes de efetuar o restore dele na
base de dados do cliente realizando pesquisar de palavras chaves que são de comum igualdade
entre todos os bancos a serem importados, como por exemplo, a palavra MySQL:

cat [caminho_do_arquivo] | grep MySQL

Cat ler o arquivo e grep para filtrar a palavra especificada, podendo ser utilizadas varias
palavras na verificação. Por ultimo a importação do backup enviado para o Banco de Dados,
onde tambem implementei um if para informar se o arquivo foi restaurado com sucesso:

if mysql -u root -p[senha_bd] [Banco_De_Dados] < [caminho_do_arquivo_a_ser_restaurado]; then echo OK; fi;

Ou seja, si der certo a restauração da base de dados recebo como resposta OK, onde mediante
comparação posso informar ao cliente se houve erros ou nao durante a Importação.

OBS: Pode haver outras maneiras, inclusives mais faceis e menos problematicas, porem essa foi
a forma que eu utilizei e que está implementada no meu sistema onde ja realizei alguns testes
e que até o momento não apresentaram erros. Vlw Pessoal!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts