Backup MySQL com SSH

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

[ Hits: 10.562 ]

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 [email protected] -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 [email protected] -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 [email protected] -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

Resolvendo Problemas de Áudio no Ubuntu 10.10

Escolhendo sua cara (distribuição) metade!

Deixando os programas em seu idioma no Ubuntu

Arch-Anywhere - ambiente de instalação do Arch Linux

Agendamento de tarefas no Linux (cron e at)

  

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 [email protected] -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 [email protected] -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