Backup MySQL com SSH

Publicado por Anderson Cristian Loyola da Silva em 03/07/2006

[ Hits: 10.829 ]

Blog: http://www.andersonloyola.com.br

 


Backup MySQL com SSH



Primeiramente, você vai ter que seguir um desses artigos, para deixar o SSH sem senha:
$ ssh usuario@servidor.com.br -p 5522 \
   "mysqldump -u usuario -psenha -h localhost baseonline" |
   mysql -u usuario -psenha -h localhost baselocal


Após isso, é só usar o comando acima. Explicarei-o a seguir.

Antes do pipe, em ssh usuario@servidor.com.br -p 5522 "mysqldump -u usuario -psenha -h localhost baseonline", está sendo executado o mysqldump diretamente no servidor e dando o retorno para a sua máquina local. Este retorno é passado para o MySQL da máquina local com o comando mysql -u usuario -psenha -h localhost baselocal, depois do pipe. Dessa forma, o MySQL executa o retorno e copia a base perfeitamente.

Antes de executar esse comando, você vai ter que criar a base na sua máquina local. Exemplo:

Servidor Online
  • HostOnline: rootbrasil.com.br
  • BaseOnline: baseroot

Servidor Local
  • HostLocal: localhost
  • BaseLocal: teste

$ echo "create database teste" |
  mysql -u mysql -p*** -h localhost
$ ssh andercrist@rootbrasil.com.br -p 5522 \
   "mysqldump -u rootbrasil -p*** -h localhost baseroot" |
   mysql -u mysql -p*** -h localhost teste


Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Corrigindo o erro de boot "Diskfilter writes as not supported"

Como remover o ambiente gráfico instalado no Ubuntu

Projeto vídeo aula de Linux no Windows para download

Variante ABNT2 em teclado Português (nativo) no Xubuntu [Interface Gráfica] - Configuração

Vindula - Solução Open Source de Intranet

  

Comentários
[1] Comentário enviado por _m4n14c_ em 03/07/2006 - 22:04h

uma sugestao eh usar a opcao -C no ssh, pois a saida do mysql dump eh texto ascii, e esta opcao habilita a compressao com o gzip, economizando banda.. ficaria assim:

$ ssh usuario@servidor.com.br -C -p 5522 "mysqldump -u usuario -psenha -h localhost baseonline" | mysql -u usuario -psenha -h localhost baselocal

outra ideia, se tiver um pouco mais de folga de processamento e aperto de banda, eh usar o bzip2:

$ ssh usuario@servidor.com.br -p 5522 "mysqldump -u usuario -psenha -h localhost baseonline | bzip2" | bunzip2 | mysql -u usuario -psenha -h localhost baselocal

[2] Comentário enviado por betofortal em 14/10/2008 - 09:57h

Me desculpem se falei alguam besteira mas deixar o ssh sem senha não deixa um furo (ou melhor, um grande buraco) na segurança não???

O tutorial é muito bom. Só este lance do ssh sem senha que me preocupa. Alguem pode opinar?

Parabens pelo tuto!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts