Este mês aconteceu algo comigo que pode parecer piada, mas é verdade. Saí de Taubaté
para São Paulo para curtir um pouco na festa skoll beats e quando cheguei na Segunda
de manhã crente que passaria o dia contando as novidades, fui surpreendido com a
bomba. Um de nossos servidores com um HD SCSI de 80GB havia queimado e nem dava sinal
de vida.
Para minha sorte, havia exatamente uma semana que eu tinha instalado um servidor de
backup, logo se um servidor parou, basta colocar o outro no ar.
Para vocês terem uma idéia, existiam cinco máquinas penduradas num único no-break,
porém em apenas esta algum tipo de curto destruiu o hardware a nível de o próprio
teclado não funcionar em nenhuma outra máquina. Foram por água abaixo um disco
SCSI, controlador, teclado, placas de rede, placa de vídeo, placa mãe.
Chega de papo furado e vamos ao artigo, que foi escrito baseado num ambiente que
roda RedHat, porém neste caso a distribuição
Linux não importa, pois os
procedimentos aqui apresentados funcionarão em qualquer delas.
Requerimentos
- Serviço cron na estação que executa o backup
- MySQL no servidor de produção que precisa de backup
- Conta de usuário no MySQL com permissão de acesso remoto a partir da estação
que executa o backup
- Conta de usuário no servidor FTP que receberá o backup
MySQL
Como descubro se minha conta de usuário do MySQL tem direito de acesso remoto?
Fácil! Abra um terminal do MySQL com o seguinte comando:
# mysql
Isso te levará ao console do programa, feito isso, digite o seguinte comando:
MYSQL> GRANT ALL PRIVILEGES ON seu_banco_dados.* TO usuario@host_remoto
IDENTIFIED BY 'senha_do_usuario' WITH GRANT OPTION;
MYSQL> FLUSH PRIVILEGES;
Onde:
- seu_banco_dados = o nome do banco de dados que seu usuário precisa ter acesso
- usuario = login no usuário
- host_remoto = máquina remota que irá acessar o servidor MySQL
- senha_do_usuario = o nome já diz tudo né?
Para testar a conexão, a partir do host remoto digite o seguinte comando:
$ mysql -h nome_servidor -u usuario -psenha_do_usuario seu_banco_dados
Se tudo estiver OK, você cairá no terminal do MySQL do servidor.
Backup
Crie um diretório de backup no local de sua preferência, no meu caso optei
por
/var/backup.
# mkdir /var/backup
E dentro deste diretório vou armazenar o script que realiza backup. Eis o
código do arquivo, que vou chamá-lo de
backup.sh: