AutoMySQLBackup – Backup de Base de Dados MySQL
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.
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!
Este artigo tem mais de um ano
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…
@David, 1 GB de BD já é muita fruta 🙂
Abraço
Pedro Pinto
Nao percebi a idéia: “mas este sh para pequenas bds > 1GB serve…”
Pequenas BD’s maiores que 1GB??
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
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 😉
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
Isto dá para windows?
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.
Este script está feito em bash. Talvez com o Cygwin consigam por a coisa a funcionar em Windows – https://pplware.sapo.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
Pedro Pinto,
Uma continuação, seria o zip dessa bd e o envio via email / servidor ftp. Desta forma já seria um melhor backup.
Muito interessante esta aplicação.obrigado Vitor
O autor é o Pedro Pinto. 😉
Por acaso andava a precisar de uma tool dessas.
Obrigado pela informação.
Eu uso esse script no trabalho, é simples e faz o que é preciso!
@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
Se está numa máquina Linux, óptimo !!! Podes usar o crontab – https://pplware.sapo.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
Obrigado Pedro, esta dica é interessante para aprender a mexer qualquer coisa no crontab.
Cumps.
Já agora, para backup de BD’s em SQL Express 2005 ou 2008:
http://invisibleflamelight.wordpress.com/2009/02/04/backups-em-sql-express-20052008/
Muito útil esse script especialmente agora que me tou a iniciar no MySql.
Cumps
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???
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 🙂
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?
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
Já descarreguei. Ainda não experimentei. Mas o meu Muito Obrigado antecipado.
😀