O que posso implementar neste script de backup?

Iniciado por g4p, 29 de Janeiro de 2014, 12:03

tópico anterior - próximo tópico

g4p

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?

Rockwave

#1
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.
#!/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

g4p

Valeu!

Rockwave,

Sou daqueles que gosto de saber o que estou fazendo.

O que esse if faz?

if [ $? -eq 1 ]

Rockwave

Citação de: g4p 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 ]


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

g4p

#4
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

g4p

Obrigado pela explicação do script, Rockwave. Vou testar ainda, valeu!

sigur

Citação de: Rockwave online 30 de Janeiro de 2014, 14:57
#!/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 ?

Rockwave

Citação de: sigur online 04 de Fevereiro de 2014, 08:07
Citação de: Rockwave online 30 de Janeiro de 2014, 14:57
#!/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.

Aderlian

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. ???



Rockwave

#9
Citação de: Aderlian 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. ???

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

Aderlian

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 *