data e arquivo backup

1. data e arquivo backup

Alexander La Valle
alexlavalle

(usa Debian)

Enviado em 29/10/2013 - 10:33h

Bom Dia Galera,

Estou com uma dúvida, e sinceramente nao sei como fazer.

Eu tenho um bkp, que ele me gera o arquivo com a data do dia, por exemplo.: backup29102013.backup

Eu gostaria que quando fizesse esse backup diario, que ele jogasse diretamente para a pasta correta do dia que no caso seria 29-10-2013. Entao todos os backups deste dia já ficariam organizados dentro da pasta especifica do dia.

No dia 30, seria a mesma coisa, e assim por diante.

Alguem poderia me ajudar?

Abraços a todos
Alex


  


2. Re: data e arquivo backup

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 29/10/2013 - 11:09h

Da pra fazer sim. Vc já começou algo?



3. Re: data e arquivo backup

Alexander La Valle
alexlavalle

(usa Debian)

Enviado em 29/10/2013 - 11:17h

Ola Meu amigo, desde ja te agradeço por ter me respondido.

bom vamos lá.
Eu comecei bem o basico mesmo.

#!/bin/bash
#Cria a pasta do Backup do dia

mkdir -p /home/webprev/lavalle/$(date +%d-%m-%Y)


assim ele já está criando.

Eu tenho os seguintes arquivos:

webprev_bkp20131028_08-00-11.tar

webprev_bkp20131029_08-00-12.tar

a unica diferença é que esta com a data diferente o 1 é do dia 28 e o 2 dia 29 (hoje).

e a pasta foi criada sendo:
29-10-2013

Então o script deverá pegar somente o arquivo webprev_bkp20131029_08-00-12.tar e jogar dentro da pasta que foi criado correto?

Fico no aguardo.

Abraços
Alex




4. Re: data e arquivo backup

Alexander La Valle
alexlavalle

(usa Debian)

Enviado em 29/10/2013 - 12:20h

#!/bin/bash
#Cria a pasta do Backup do dia
#mkdir /home/webprev/bkp/$DAILYDIRECTORY/$(date +%d-%m-%Y)

#YEAR=$(date +%Y)
#MONTH=$(date +%m)
#DAY=$(date +%d)

data1=$DAILYDIRECTORY$(date +%d-%m-%Y)
if [ $data1 != $DAILYDIRECTORY$(date +%d-%m-%Y) ] ; then

echo "$data1";
else
echo "A data nao e diferente $data1";
mkdir /home/webprev/lavalle/$DAILYDIRECTORY/$(date +%d-%m-%Y)
cp webprev_bkp$(date +%Y%m%d_%H-%M-%S).tar /home/webprev/lavalle/$DAILYDIRECTORY/$(date +%d-%m-%Y)/
fi


estou tentando fazer aqui mas nao esta dando certo nao.

me ajude por favor.

Abras
Alex


5. Re: data e arquivo backup

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 29/10/2013 - 12:34h

alexlavalle escreveu:

#!/bin/bash
#Cria a pasta do Backup do dia
#mkdir /home/webprev/bkp/$DAILYDIRECTORY/$(date +%d-%m-%Y)

#YEAR=$(date +%Y)
#MONTH=$(date +%m)
#DAY=$(date +%d)

data1=$DAILYDIRECTORY$(date +%d-%m-%Y)
if [ $data1 != $DAILYDIRECTORY$(date +%d-%m-%Y) ] ; then

echo "$data1";
else
echo "A data nao e diferente $data1";
mkdir /home/webprev/lavalle/$DAILYDIRECTORY/$(date +%d-%m-%Y)
cp webprev_bkp$(date +%Y%m%d_%H-%M-%S).tar /home/webprev/lavalle/$DAILYDIRECTORY/$(date +%d-%m-%Y)/
fi


estou tentando fazer aqui mas nao esta dando certo nao.

me ajude por favor.

Abras
Alex


Faz melhor: ajuste isso aí:
#!/bin/bash

# Define data atual
datatual=$(date sei lá) # substitua sei lá pela máscara de data que você vai usar

# Define o diretório do qual será feito o backup:
dirbase=${/home/webprev/lavalle:-"$1"}

# Define o diretório de backup:
dirbak=${"$dirbase"/"$datatual":-"$2"/"$datatual"}

# Cria o diretório de backup caso ele não exista
mkdir -p "$dirbak"

# Nome do backup
nomebak=${"$datatual":-"$3"} # coloque dentro das aspas como o nome deve ficar

# Cria o backup direto no diretório de destino- mais eficiente do que criar o backup por fora e depois copiar
tar -jcvf "$dirbak"/"$nomebak".tar.bz2 "$dirbase"


$1, $2 e $3 ficam como parâmetros que podem ser passados para o script na linha de comando. Estou fazendo de qualquer maneira e às pressas, só pra te dar uma luz. Adapte e use conforme o caso.


6. Re: data e arquivo backup

Alexander La Valle
alexlavalle

(usa Debian)

Enviado em 29/10/2013 - 12:53h

Boa tarde, lcavalheiro

Eu segui a sua ideia. e troquei aonde vc me falou, mas não sei se é isso mesmo.

Eu coloquei o codigo e abaixo os erros.

Abraços e obrigado

alex


#!/bin/bash

# Define data atual
datatual=$(date +%d-%m-%Y) # substitua sei l� pela m�scara de data que voc� vai usar

# Define o diret�rio do qual ser� feito o backup:
dirbase=${/home/webprev/lavalle:-"$1"}

# Define o diret�rio de backup:
dirbak=${"$dirbase"/"$datatual":-"$2"/"$datatual"}

# Cria o diret�rio de backup caso ele n�o exista
mkdir -p "$dirbak"

# Nome do backup
nomebak=${"$datatual":-"$3"} # coloque dentro das aspas como o nome deve ficar

# Cria o backup direto no diret�rio de destino- mais eficiente do que criar o backup por fora e depois copiar
tar -jcvf "$dirbak"/"$nomebak".tar.bz2 "$dirbase"

e da o seguinte erro:

root@webprev:/home/webprev/lavalle# ./novo.sh
./novo.sh: line 7: ${/home/webprev/lavalle:-"$1"}: bad substitution
./novo.sh: line 10: ${"$dirbase"/"$datatual":-"$2"/"$datatual"}: bad substitution
mkdir: cannot create directory `': No such file or directory
./novo.sh: line 16: ${"$datatual":-"$3"}: bad substitution
tar: Substituting `.' for empty member name
tar: : Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
root@webprev:/home/webprev/lavalle#



7. Re: data e arquivo backup

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 29/10/2013 - 12:58h

alexlavalle escreveu:

Boa tarde, lcavalheiro

Eu segui a sua ideia. e troquei aonde vc me falou, mas não sei se é isso mesmo.

Eu coloquei o codigo e abaixo os erros.

Abraços e obrigado

alex


#!/bin/bash

# Define data atual
datatual=$(date +%d-%m-%Y) # substitua sei l� pela m�scara de data que voc� vai usar

# Define o diret�rio do qual ser� feito o backup:
dirbase=${/home/webprev/lavalle:-"$1"}

# Define o diret�rio de backup:
dirbak=${"$dirbase"/"$datatual":-"$2"/"$datatual"}

# Cria o diret�rio de backup caso ele n�o exista
mkdir -p "$dirbak"

# Nome do backup
nomebak=${"$datatual":-"$3"} # coloque dentro das aspas como o nome deve ficar

# Cria o backup direto no diret�rio de destino- mais eficiente do que criar o backup por fora e depois copiar
tar -jcvf "$dirbak"/"$nomebak".tar.bz2 "$dirbase"

e da o seguinte erro:

root@webprev:/home/webprev/lavalle# ./novo.sh
./novo.sh: line 7: ${/home/webprev/lavalle:-"$1"}: bad substitution
./novo.sh: line 10: ${"$dirbase"/"$datatual":-"$2"/"$datatual"}: bad substitution
mkdir: cannot create directory `': No such file or directory
./novo.sh: line 16: ${"$datatual":-"$3"}: bad substitution
tar: Substituting `.' for empty member name
tar: : Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
root@webprev:/home/webprev/lavalle#


Tira os $1, $2 e $3 e tira as aspas. Vou mostrar só um exemplo, os outros você faz
dirbase=/home/webprev/lavalle


8. Re: data e arquivo backup

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 29/10/2013 - 13:11h

Boa tarde, e se usar algo assim... Faz as alterações necessária e testa ai.

#!/bin/bash
#Cria a pasta do Backup do dia

mkdir -p /home/webprev/lavalle/`date +%d-%m-%Y`

cp /localDoBackup/webprev_bkp`date +%Y%m%d_%H-%M`*.tar /home/webprev/lavalle/`date +%d-%m-%Y`



9. Re: data e arquivo backup

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 29/10/2013 - 13:53h

think linux escreveu:

Boa tarde, e se usar algo assim... Faz as alterações necessária e testa ai.

#!/bin/bash
#Cria a pasta do Backup do dia

mkdir -p /home/webprev/lavalle/`date +%d-%m-%Y`

cp /localDoBackup/webprev_bkp`date +%Y%m%d_%H-%M`*.tar /home/webprev/lavalle/`date +%d-%m-%Y`


Aproveitando a dica do colega,

Coloque os parâmetros "rvp" no comando cp se quiser manter as permissões e copiar recursivamente.

Mas pelo visto vc quer mover, então use o mv:

 

#!/bin/bash
#Cria a pasta do Backup do dia

mkdir -p /home/webprev/lavalle/`date +%d-%m-%Y`

mv /localDoBackup/webprev_bkp`date +%Y%m%d_%H-%M`*.tar /home/webprev/lavalle/`date +%d-%m-%Y`
if [ $? -eq 0 ]; then

echo "Arquivo webprev_bkp`date +%Y%m%d_%H-%M`*.tar movido com sucesso para a pasta `date +%d-%m-%Y`"

else

echo "Erro ao mover a(s) pasta(s), vide permissões.."

fi



No código acima ele irá enviar mensagem se a tranfêrencia ocorreu com sucesso.



10. data e arquivo backup

Alexander La Valle
alexlavalle

(usa Debian)

Enviado em 29/10/2013 - 14:06h

Ola Amigos,

o codigo por enquanto está sim (script).

#!/bin/bash

# Define data atual
datatual=$(date +%d-%m-%Y) # substitua sei l� pela m�scara de data que voc� vai usar

# Define o diret�rio do qual ser� feito o backup:
dirbase=/home/webprev/lavalle

# Define o diret�rio de backup:
dirbak="$dirbase"/"$datatual"

# Cria o diret�rio de backup caso ele n�o exista
mkdir -p "$dirbak"


#mkdir -p /home/webprev/lavalle/`date +%d-%m-%Y`

mv /home/webprev/lavalle/webprev_bkp`date +%Y%m%d_%H-%M`*.tar /home/webprev/lavalle/`date +%d-%m-%Y`
if [ $? -eq 0 ]; then

echo "Arquivo webprev_bkp`date +%Y%m%d_%H-%M`*.tar movido com sucesso para a pasta `date +%d-%m-%Y`"

else

echo "Erro ao mover a(s) pasta(s), vide permissoes.."

fi


so que quando executo, ele cria o diretorio da data de hoje, porém ele me apresenta o seguinte erro:

root@webprev:/home/webprev/lavalle# ./novo.sh
mv: cannot stat `/home/webprev/lavalle/webprev_bkp20131029_13-46*.tar': No such file or directory
Erro ao mover a(s) pasta(s), vide permissoes..



Isto significa que ele esta indo para o else do if.

nao sei o que esta acontecendo.

Abraços
Alex



11. Re: data e arquivo backup

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 29/10/2013 - 14:13h

alexlavalle escreveu:

Ola Amigos,

o codigo por enquanto está sim (script).

#!/bin/bash

# Define data atual
datatual=$(date +%d-%m-%Y) # substitua sei l� pela m�scara de data que voc� vai usar

# Define o diret�rio do qual ser� feito o backup:
dirbase=/home/webprev/lavalle

# Define o diret�rio de backup:
dirbak="$dirbase"/"$datatual"

# Cria o diret�rio de backup caso ele n�o exista
mkdir -p "$dirbak"


#mkdir -p /home/webprev/lavalle/`date +%d-%m-%Y`

mv /home/webprev/lavalle/webprev_bkp`date +%Y%m%d_%H-%M`*.tar /home/webprev/lavalle/`date +%d-%m-%Y`
if [ $? -eq 0 ]; then

echo "Arquivo webprev_bkp`date +%Y%m%d_%H-%M`*.tar movido com sucesso para a pasta `date +%d-%m-%Y`"

else

echo "Erro ao mover a(s) pasta(s), vide permissoes.."

fi


so que quando executo, ele cria o diretorio da data de hoje, porém ele me apresenta o seguinte erro:

root@webprev:/home/webprev/lavalle# ./novo.sh
mv: cannot stat `/home/webprev/lavalle/webprev_bkp20131029_13-46*.tar': No such file or directory
Erro ao mover a(s) pasta(s), vide permissoes..



Isto significa que ele esta indo para o else do if.

nao sei o que esta acontecendo.

Abraços
Alex


Corrija
mv /home/webprev/lavalle/webprev_bkp`date +%Y%m%d_%H-%M`*.tar /home/webprev/lavalle/`date +%d-%m-%Y` 

para
[code]mv "/home/webprev/lavalle/webprev_bkp$(date +%Y%m%d_%H-%M)*.tar" "/home/webprev/lavalle/$(date +%d-%m-%Y).tar"


12. data e arquivo backup

Alexander La Valle
alexlavalle

(usa Debian)

Enviado em 29/10/2013 - 14:51h

Boa Tarde pessoal,

Bom com muita satisfação e honra, agradeço a todos que me ajudaram. e o script final ficou assim:

#!/bin/bash

# Define data atual
datatual=$(date +%d-%m-%Y) # substitua sei l� pela m�scara de data que voc� vai usar

# Define o diret�rio do qual ser� feito o backup:
dirbase=/home/webprev/lavalle

# Define o diret�rio de backup:
dirbak="$dirbase"/"$datatual"

# Cria o diret�rio de backup caso ele n�o exista
mkdir -p "$dirbak"


#mkdir -p /home/webprev/lavalle/`date +%d-%m-%Y`

mv /home/webprev/lavalle/webprev_bkp`date +%Y%m%d_`*.tar /home/webprev/lavalle/`date +%d-%m-%Y`
if [ $? -eq 0 ]; then

echo "Arquivo webprev_bkp`date +%Y%m%d`*.tar movido com sucesso para a pasta `date +%d-%m-%Y`"

else

echo "Erro ao mover a(s) pasta(s), vide permissoes.."

fi

Eu ja coloquei no crontab, fiz uns testes e funcionou perfeitamente.

Aproveitando eu gostaria de estar perguntando o seguinte. Como eu preciso estar transferindo para um outro servidor os backups, eu ja deixei pronto a parte das senhas via ssh.
e eu utilizo a seguinte linha de comando: o xxxx (ip externo)

scp /home/webprev/bkp/*.tar root@xxxxx:/home/webprev/bkp

esta linha funciona 100% e esta em produção. Porém, como vocês me ajudaram a montar o script e transferir os arquivos conforme a data, eu gostaria de estar fazendo o seguinte.:

1) Depois que ele executar todo o processo de backup e mover para a pasta conforme a data, eu gostaria de estar transferindo. isto é, ele ja transfere para outro servidor montando as pastas.

Vocês acham melhor eu realizar um rysnc?
E ai eu teria nos dois servidores a mesma estrutura de diretorio e pastas com os seus respectivos arquivos.


Abraços e mais uma vez obrigado a todos.


Alex





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts