AutoMySQLBackup – Backup de Base de Dados MySQL

24 Comentários

Como sabemos, as bases de dados são normalmente o repositório de toda a informação de muitas aplicações e sites. De que vale um site profissionalmente desenvolvido se não possui informação? Isto para dizer que a informação é muito valiosa e em muitas vezes única, é por isso importante fazermos cópias de segurança (backups), para prevenir alguma perda indesejada.

Normalmente uso com base de dados o MySQL devido à sua versatilidade e  porque possuo um script desenvolvido por mim para realizar backups das bases de dados. Noutro dia, descobri o AutoMySQLBackup, que permite de forma muito simples, efectuar o backup de uma ou várias bases de dados, produção de logs, envio de notificação via e-mail, etc. O script foi desenvolvido em bash.

hardrive_000


Vamos então passar à acção e ensinar como por em funcionamento esta maravilha:

1 – Download do script

O download do script pode ser feito directamente a partir daqui: AutoMySQLBackup

2 – Configuração do script

Tendo em conta que fez download do script para a pasta /usr/local/bin, é necessária a parametrização do script. Para editar o script usamos por exemplo o editor nano:

[root@ppinto]# nano /usr/local/bin/automysqlbackup.sh.2.5

Agora só temos de proceder as alterações que pretendemos incluir, como por exemplo definir quais as bases de dados, utilizador de acesso às bases de dados, directório de backup, endereço de e-mail, etc.

# Utilizador de acesso ao servidor MySQL
USERNAME=root

# Password de Acesso
PASSWORD=naovoudizer

# Endereço IP ou hostname da máquina onde está a correr o servidor MySQL

DBHOST=localhost

# Lista de Base de dados a fazer backup ex: “DB1 DB2 DB3”
DBNAMES=”ppinto pplware siteA”

# Directório de Backup
BACKUPDIR=”/home/ppinto/backups”

# Endereço de e-mail para receber o log
MAILADDR=ppinto @ pplware.com

E está feito. Muito simples, não é?

3 – Execução do script

Começamos por dar as permissões de execução ao script através do comando:

[root@ppinto]# chmod 755 /usr/local/bin/automysqlbackup.sh.2.5

Para  executar basta simplesmente correr o comando:

[root@ppinto]# ./automysqlbackup.sh.2.5

E o backup será feito para a pasta definida no script /home/ppinto/backups.

Feito isto preciso do vosso feedback para a continuidade deste artigo, para colocar os backups feitos automaticamente. Acham que vale a pena um artigo com essa explicação ou já dominam?

Que saudades eu tinha de escrever um artigo para Linux!

Partilhar:
Tags:

Comentários

24

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de David
    David

    Infelizmente, mais do mesmo, não é que não funcione, mas o mysqldump ou dá lock às tabelas… OU as relações ficam quebradas…

    Snapshots! PLZ!.

    mas este sh para pequenas bds > 1GB serve…

    1. Avatar de Pedro Pinto

      @David, 1 GB de BD já é muita fruta 🙂

      Abraço
      Pedro Pinto

    2. Avatar de Rui Costa
      Rui Costa

      Nao percebi a idéia: “mas este sh para pequenas bds > 1GB serve…”

      Pequenas BD’s maiores que 1GB??

      1. Avatar de Paulo Ribeiro

        penso que ele se enganou no sinal.
        normalmente backups de bases de dados muito grandes tem sempre de ser feitos por SSH.
        de todas as formas para quem utiliza por exemplo Cpanel pode programar backups complexos que nao gastem mais de X% do processador a uma hora de madrugada.
        Em dois dos servidores da nossa empresa que tem maioritariamente sites nacionais o backup esta agendado para as 4 e meia da manha e ele guarda os últimos 2 backups.

        agradeço ao autor pedro pinto a ferramenta, vou testa-la com algumas bases importantes que tenho em servidores de mailing que costumam ser bem grandes e vou ver como isto se porta e ja digo qualquer coisa

        1. Avatar de David
          David

          Sou o autor do 1º post, e sim enganei-me no sinal xD

          Sabes “concretamente” como funciona isso?

          N faz um mês que com a ajudar de um sysadmin criei um script para fazer “hotbackup” de um servidor(não da(s) BD)

          gostava de melhorar, e se o CPnael fizer algo mesmo BOM, talvez possa melhorar 😉

      2. Avatar de Paulo Ribeiro

        Total disk space used for backup storage..
        Size – Location
        280M /backups

        Foi muito rapido. So falta o tutorial de restore da base de dados com atribuiçao das permissoes que corrijam os possiveis e mais que previsiveis problemas de permissoes do ficheiro e de owner.

        Como tecnico de seguraça deixo duas sugestoes:
        ~~~~~~~~~~~~~~
        ou
        encriptar a password de acesso a base de dados e pedi-la ao fazer o backup
        ou
        guardar o ficheiro no pc ou pen comprimido e evitar problemas. a password de root num ficheiro em sh torna-se perigoso, especialmente com permissoes de executar a malta vai logo meter 777 por mau habito e basta alguem com uma shell e alguma paciencia e encontra o ficheiro com uma pesquisa rapida.
        penso que o automysql backup pode dar grandes passoes, e deve, na parte da segurança porque mesmo guardado em pasta root pode ser um bocado perigoso.
        ~~~~~~~~~~~~~~

        e para terminar, penso que esta aplicaçao pode correr por crontabs ou por software remoto e da mesmo muito jeito, especialmente para quem nao utiliza cpanel ou tem bases granditas

  2. Avatar de Nuno Amaral
    Nuno Amaral

    Isto dá para windows?

    1. Avatar de Rui Costa
      Rui Costa

      PHP funciona em windows e linux, e no teu caso funciona perfeitamente.

      Aliás já deves ter em algum site esse script com o mysqldump.

      1. Avatar de Pedro Pinto

        Este script está feito em bash. Talvez com o Cygwin consigam por a coisa a funcionar em Windows – https://pplware.sitedev.pt/2008/07/21/terminal-linux-no-windows-cygwin-1525-14/

        Como disse o Rui Costa, há sempre outras alternativa, o PHP é uma delas. Tens o script aqui: http://www.vivaolinux.com.br/script/Backup-do-MySQL-via-PHP

  3. Avatar de Rui Costa
    Rui Costa

    Pedro Pinto,

    Uma continuação, seria o zip dessa bd e o envio via email / servidor ftp. Desta forma já seria um melhor backup.

  4. Avatar de Rui Antunes

    Muito interessante esta aplicação.obrigado Vitor

    1. Avatar de Ana Narciso

      O autor é o Pedro Pinto. 😉

  5. Avatar de David

    Por acaso andava a precisar de uma tool dessas.

    Obrigado pela informação.

  6. Avatar de Andre T
    Andre T

    Eu uso esse script no trabalho, é simples e faz o que é preciso!

  7. Avatar de M.Manuelito
    M.Manuelito

    @Pedro Pinto
    Por acaso não conheces nenhum script que faça o backup de uma base de dados Informix a uma hora pré-determinada e o envie para outra máquina dentro da mesma rede?
    A base de dados está instalada no Servidor Linux Red Hat e a ideia é que, por exemplo à meia noite ele faça o backup e o mande para para para outra máquina.
    Abraço e bom fim de semana

    1. Avatar de Pedro Pinto

      Se está numa máquina Linux, óptimo !!! Podes usar o crontab – https://pplware.sitedev.pt/2007/03/06/o-que-e-o-crontab/ – para agendar os backups. Agora quanto a BDs Informix nunca trabalhei, não conheço, a ver se alguém dá uma ajuda por estes lados.

      PPinto

      1. Avatar de M.Manuelito
        M.Manuelito

        Obrigado Pedro, esta dica é interessante para aprender a mexer qualquer coisa no crontab.

        Cumps.

  8. Avatar de Computed Life

    Muito útil esse script especialmente agora que me tou a iniciar no MySql.

    Cumps

  9. Avatar de Renato
    Renato

    Seria interessante colocar uma criptografia nos dados….ou pelo menos uma senha…quem sabe integrar um 7zip para compactar o arquivo gerado colocando uma senha???

  10. Avatar de Renato Akaboci

    muito bom scripts para esse fim, mas podia ter uma segurança maior caso o arquivo gerado fosse compactado com senha, talvez utilizando o 7zip para esse fim 🙂

  11. Avatar de R
    R

    Olá amigos.
    Uma questão meio “in” meio “off topic”…
    Já que estamos no tema de bases de dados, aproveito a sabedoria dos sabedores. 🙂
    Conhecem alguma maneira de correr uma base de dados criada no ms access mas sem se ter o MS-Access?
    Para o powerpoint, existe o pptviewer (ou qualquer coisa parecida…), e para o access? Já andei à procura e não encontrei nada.
    Já experimentei o open office, mas os formulários e assim vão-se à vida… Alguma ideia?

    1. Avatar de M.Manuelito
      M.Manuelito

      Faz o download do Access Runtime em:
      http://www.microsoft.com/downloads/details.aspx?displaylang=pt-pt&FamilyID=d9ae78d9-9dc6-4b38-9fa6-2c745a175aed
      É o que eu uso para distribuir pequenas aplicações em Access que tenho feito no meu serviço para utilizadores que não têm o access.
      Cumps

      1. Avatar de R
        R

        Já descarreguei. Ainda não experimentei. Mas o meu Muito Obrigado antecipado.
        😀