Autor Tópico: O que posso implementar neste script de backup?  (Lida 8764 vezes)

Offline g4p

  • Usuário Ubuntu
  • *
  • Mensagens: 262
    • Ver perfil
O que posso implementar neste script de backup?
« Online: 29 de Janeiro de 2014, 12:03 »
Citar
#!/bin/bash

# Script de Backup - 29/01/2014
# Backup com rsync

rsync -av editora@192.168.100.120:/srv/Storage1/ /srv/Storage1/

# Finaliza enviando data/hora para o arquivo bkp.log

HORARIO=`date +%d/%m/%Y-%H:%M:%S`
echo "Backup realizado com sucesso. $HORARIO" >> bkp.log

O que eu poderia colocar para implementar esse script de backup?

Offline Rockwave

  • Usuário Ubuntu
  • *
  • Mensagens: 223
    • Ver perfil
Re: O que posso implementar neste script de backup?
« Resposta #1 Online: 30 de Janeiro de 2014, 14:57 »
Eu mudaria algumas coisas, por exemplo redirecionar a saida do rsync para um arquivo para poder saber se deu algum problema durante a cópia, principalmente se o script for lançado via crontab, nesse caso também seria interessante você testar a variavel $? para saber se o backup ocorreu com sucesso.
Código: [Selecionar]
#!/bin/bash

# Script de Backup - 29/01/2014
# Backup com rsync

rsync -av editora@192.168.100.120:/srv/Storage1/ /srv/Storage1/ >> backup_ $(date +%F).log

# Finaliza enviando data/hora para o arquivo bkp.log
if [ $? -eq 1 ]
then
HORARIO=`date +%F_%H:%M:%S`
echo "Backup realizado com sucesso. $HORARIO" >> bkp.log
else
HORARIO=`date +%F_%H:%M:%S`
echo "Backup com falha. $HORARIO" >> bkp.log
« Última modificação: 30 de Janeiro de 2014, 14:58 por Rockwave »

Offline g4p

  • Usuário Ubuntu
  • *
  • Mensagens: 262
    • Ver perfil
Re: O que posso implementar neste script de backup?
« Resposta #2 Online: 03 de Fevereiro de 2014, 17:30 »
Valeu!

Rockwave,

Sou daqueles que gosto de saber o que estou fazendo.

O que esse if faz?

if [ $? -eq 1 ]

Offline Rockwave

  • Usuário Ubuntu
  • *
  • Mensagens: 223
    • Ver perfil
Re: O que posso implementar neste script de backup?
« Resposta #3 Online: 03 de Fevereiro de 2014, 17:46 »
Valeu!

Rockwave,

Sou daqueles que gosto de saber o que estou fazendo.

O que esse if faz?

if [ $? -eq 1 ]


Opa!! acabei de pegar um pequeno erro!! Substitua o if [ $? -eq 1 ] por if [ $? -eq 0 ], essa variável $? guarda o código de saída do ultimo comando que foi executado, se esse valor é 0 então o comando foi executado com sucesso, caso contrario esse valor é alterado. Então quando eu testo essa variável logo após o comando que efetivamente faz a cópia do arquivo eu consigo saber se o backup foi feito com sucesso (o que não significa necessariamente que o backup está integro).

Se me permite mais duas sugestões, de uma olhada em como fazer para manter as permissões dos arquivos que estão sofrendo backup (isso pode evitar algumas dores de cabeça na hora de um restore) e também estude se não é interessante fazer um backup diferencial (ou incremental), para diminuir o espaço utilizado por cada backup. Em alguns ambientes que eu tomo conta é feito um backup full no final de semana e durante a semana são feitos backups diferenciais ou incrementais, isso faz com que o backup durante a semana seja bem mais rapido.

Abraço

Offline g4p

  • Usuário Ubuntu
  • *
  • Mensagens: 262
    • Ver perfil
Re: O que posso implementar neste script de backup?
« Resposta #4 Online: 03 de Fevereiro de 2014, 18:00 »
Com essa sintaxe do rsync estou fazendo um backup incremental. É transferido apenas o que tem na origem e não tem no destino. (partes)

Complicado fazer um backup diferencial aqui na empresa por conta da quantidade de dados que trabalhamos, em torno de 5TB.

Para manter as permissões as flags são as seguintes:

p = preservar permissão
o = preservar owner
g = preservar grupo
« Última modificação: 03 de Fevereiro de 2014, 18:02 por g4p »

Offline g4p

  • Usuário Ubuntu
  • *
  • Mensagens: 262
    • Ver perfil
Re: O que posso implementar neste script de backup?
« Resposta #5 Online: 03 de Fevereiro de 2014, 18:00 »
Obrigado pela explicação do script, Rockwave. Vou testar ainda, valeu!

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.176
    • Ver perfil
Re: O que posso implementar neste script de backup?
« Resposta #6 Online: 04 de Fevereiro de 2014, 08:07 »
Código: [Selecionar]
#!/bin/bash
rsync -av editora@192.168.100.120:/srv/Storage1/ /srv/Storage1/ >> backup_ $(date +%F).log

Só uma pergunta: tem espaço entre o underline e o dólar? backup_ $(date +%F).log ou backup_$(date +%F).log ?

Offline Rockwave

  • Usuário Ubuntu
  • *
  • Mensagens: 223
    • Ver perfil
Re: O que posso implementar neste script de backup?
« Resposta #7 Online: 04 de Fevereiro de 2014, 08:24 »
Código: [Selecionar]
#!/bin/bash
rsync -av editora@192.168.100.120:/srv/Storage1/ /srv/Storage1/ >> backup_ $(date +%F).log

Só uma pergunta: tem espaço entre o underline e o dólar? backup_ $(date +%F).log ou backup_$(date +%F).log ?

Não tem espaço entre o underline e o dolar.

Offline Aderlian

  • Usuário Ubuntu
  • *
  • Mensagens: 17
    • Ver perfil
Re: O que posso implementar neste script de backup?
« Resposta #8 Online: 05 de Fevereiro de 2014, 11:14 »
ola pessoal eu preciso de uma ajudinha sou novo no ubuntu e preciso copiar um arquivo já zipado do banco de dados do sistema só que esse arquivo esta uma maquina windows já tentei colocar dentro do Script USUARIO@IP_DA_OUTRA_MAQUINA:/diretório_do_arquivo/arquivo      /diretório_destino ele me retorna: ssh: connect to host 192.168.0.X port 22: Connection timed out

também tentei rsync -av User@192.168.0.X:/Diretório/ /home/PC/Downloads >> backup_ $(date +%F).log
ele me retorna: ssh: connect to host 192.168.0.x port 22: Connection timed out
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(605) [Receiver=3.0.9]

o windows é 8 se alguém puder me ajudar. ???



Offline Rockwave

  • Usuário Ubuntu
  • *
  • Mensagens: 223
    • Ver perfil
Re: O que posso implementar neste script de backup?
« Resposta #9 Online: 05 de Fevereiro de 2014, 12:23 »
ola pessoal eu preciso de uma ajudinha sou novo no ubuntu e preciso copiar um arquivo já zipado do banco de dados do sistema só que esse arquivo esta uma maquina windows já tentei colocar dentro do Script USUARIO@IP_DA_OUTRA_MAQUINA:/diretório_do_arquivo/arquivo      /diretório_destino ele me retorna: ssh: connect to host 192.168.0.X port 22: Connection timed out

também tentei rsync -av User@192.168.0.X:/Diretório/ /home/PC/Downloads >> backup_ $(date +%F).log
ele me retorna: ssh: connect to host 192.168.0.x port 22: Connection timed out
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(605) [Receiver=3.0.9]

o windows é 8 se alguém puder me ajudar. ???

Você tem que instalar um servidor ssh no windows da uma olhada nesse artigo http://www.vivaolinux.com.br/dica/Instalando-servidor-SSH-no-Windows.  talvez te ajude
« Última modificação: 05 de Fevereiro de 2014, 12:25 por Rockwave »

Offline Aderlian

  • Usuário Ubuntu
  • *
  • Mensagens: 17
    • Ver perfil
Re: O que posso implementar neste script de backup?
« Resposta #10 Online: 06 de Fevereiro de 2014, 09:06 »
obrigado pela dica Rockwave mais não consegui me intender com a porcaria do windows 8 (pensa numa bicheira hehehe) ;D
dai fiz o seguinte utilizei o comando
~$ smbclient //192.168.0.X/bkp_sistema -U ¨usuário¨ --pass ¨senha¨ -c
smb: \> prompt
smb: \> mget *

assim consigo copiar o arquivos sem problema mais quando tento ponhar dessa forma no script ele nao executa os comando prompt e mget * ele ate faz o login e acessa normal mais não faz a copia se alguém puder me ajudar  ???
o meu arquivo ficou assim

#!/bin/bash
cd /home/PC/Documentos/TI/backup_sistema/
smbclient //192.168.0.X/bkp_sistema -U ¨usuário¨ --pass ¨senha¨ -c
prompt
mget *