É fato que devemos ter backups íntegros das nossas aplicações e servidores. Um backup confiável pode ser a diferença entre você ter que trabalhar durante algumas horas ou alguns dias ou até mesmo a diferença entre o sucesso ou a falência de uma empresa. Nada é mais frustrante, desmotivante e caro do que ter que refazer todo um sistema por uma simples falha no seu backup.
Artigo previamente publicado em meu blog:
www.mysqlbox.com.br
Para que o nosso script consiga usar a API, precisamos instalar o curl. O
curl é uma ferramenta de linha de comando open source que transfere dados para uma URL, suportando DICT, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMTP, SMTPS, Telnet e TFTP. Suporta certificados SSL, HTTP POST, HTTP PUT, upload FTP, proxies, HTTP/2, cookies, autenticação de usuário e senha (Basic, Plain, Digest, CRAM- MD5, NTLM, Negotiate e Kerberos) , tunneling proxy e muito mais.
Para instalá-lo, basta executar o comando:
# yum install curl
Você precisará do
git para efetuar o download dos scripts. Para quem não conhece, o git é um sistema de controle de versão, gratuito e open source. Para você trabalhar com o
GitHub ou
BitBucket, você precisa ter o git instalado em sua máquina. Então vamos instalá-lo.
# yum install git
Com o curl e git instalados, precisamos configurar o nosso usuário de MySQL que fará os dumps dos nossos bancos via mysqldump. O
mysqldump é um utilitário do MySQL que executa backups lógicos, produzindo um conjunto de instruções SQL que podem ser executadas para reproduzir as definições de objeto de banco de dados originais e os dados da tabela. Ele despeja um ou mais bancos de dados MySQL para backup. O comando mysqldump também pode gerar a saída em formato CSV, ou em formato XML.
A configuração do MySQL é rápida e o usuário terá apenas permissão de leitura. Lembrando que por motivos óbvios de segurança, devemos liberar o acesso apenas para localhost ou para o IP do servidor que se conectará e fará os backups.
mysql>
GRANT SELECT, SHOW VIEW, TRIGGER, LOCK TABLES, RELOAD, SUPER, FILE ON *.* TO backup@localhost IDENTIFIED BY 'SUASENHA';
Com o shell e o MySQL prontos para fazer o backup, vamos ao próximo passo, que é o Dropbox!