• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

kingless

[PHP]Backup da base de dados

8 mensagens neste tópico

Este código serve para fazer o backup da base de dados mysql.

             

                  <?
                //kingless 2006

                $host = "";
                $user = "";
                $senha = "";
                $db = "";

                $con = mysql_connect($host,$user,$senha);
                mysql_select_db( $db , $con);
                $query = "SHOW DATABASES";
                $query = mysql_query($query) or die (mysql_error());
                $data = date( "d-m-y" );
                while ($row = mysql_fetch_array( $query )){
                $nome = $row[0];
                $Arquivo = $nome."-".$data;
                $backup = `mysqldump --host=$host --user=$user --password=$senha $nome > $Arquivo.sql`;
                if( $backup ) { echo "<b><center>O Backup foi feito com sucesso!</center></b><br />"; }
                }
                $arquivo = "mysql_".$data;
                $backup = `tar -cvzf $arquivo.tar.gz *.sql`;
                if( !$backup ) { echo "<b><center>Não Foi Possivel gravar o backup num ficheiro $arquivo.tar.gz
                , por isso o backup está no ficheiro $Arquivo.sql</center></b><br />"; }
                $backup = `rm *.sql`;
                ?>
                

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito práctico mas pessoalmente eu além de tudo isto colocava a opção de enviar o ficheiro para o mail do dono do site, porque deste modo se a informação do servidor se perdesse seria facilmente recuperada :D Ideal para quem tem mails grandes :P

Metia também o script a correr no cron de forma a conseguir fazer backups diários ou semanais :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

kingless, será que podes explicar o que fazem os ` ` sff? é para executar comandos na bash?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

kingless, não experimentei o codigo mas acho que o backtick (`) pode dar probs em windows e nem todos correm unix. therefore, system() :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O backtick não da problemas no Windows nem no Linux o backtick só não funciona se o safe_mode estiver ligado ou o shell_exec estiver desligado mas isso no Linux e Windows.

De qualquer maneira se alguem quiser utilizar outra função de execução pode utilizar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora