Backup MySQL com SSH

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

[ Hits: 11.490 ]

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

Virtualização - VirtualBox em modo texto e acesso remoto

"user parameter" no Zabbix - Configuração

OcoMon - Sistema HelpDesk em PHP

Ocomon - Instalação e Configuração

Como atualizar o Kernel no Linux CentOS 7

  

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