Fazer backup por data e apagar somente dia anterior

1. Fazer backup por data e apagar somente dia anterior

Willian Saldanha
williansaldanha

(usa Outra)

Enviado em 24/12/2015 - 11:02h

Olá pessoal, tenho um Linux LTS 12.04 e criei um script para fazer backup dos meus arquivos do samba diariamente colocando-o no agendador de tarefas "crontab". Fiz ele pra criar os backups por data, ou seja, cada dia cria-se um arquivo novo e seu nome é a data do dia em que ele está sendo rodado.

#!/bin/bash
DATA=$(date --date "0 day ago" +%d-%m-%Y)
cp -rfv /home/Arquivos /media/hd_externo/$DATA.zip

Só que os arquivos são muito grandes, e o HD é só 1TB, ou seja, quando ele cria 3 arquivos "EX: 20-12-2015.zip ; 21-12-2015.zip ; 22-12-2015.zip" o HD fica sem espaço! Então eu queria criar outro arquivo para manter dentro do HD só dois backup's, ou seja, os 2 ultimos, nesse caso "22-12-2015.zip e 21-12-2015.zip", e dessa data pra trás ele excluísse!



  


2. Re: Fazer backup por data e apagar somente dia anterior

Antonio Mauricio dos santos
anewvision

(usa Debian)

Enviado em 24/12/2015 - 12:31h

Sei que não foi que tu perguntou, mas não é mais facil a rotina de backup subscrever o backup do dia anterior.
http://informatica.anewvision.com.br/


3. Re: Fazer backup por data e apagar somente dia anterior

Sergei Martao
sergeimartao

(usa Linux Mint)

Enviado em 24/12/2015 - 16:10h

williansaldanha

Voce vai precisar atualizar esse script, segue alguns passos.

1 - Altere o formato da data para Ano Mês e Dia
DATA=$(date --date "0 day ago" +%Y-%m-%d) 

2 - Coloque um if para contar quantos arquivos existe no diretório, se for maior que 2 (que é o seu caso) delete o arquivo mais velho.

2.1 - Contar o número de arquivos no diretório
N=`ls /media/hd_externo/ | grep -i zip | wc -l` 

2.2 - Comparar o número de arquivos no diretório
if [ $N -ge 2 ];then

comandos para deletar o arquivo mais antigo

fi

2.3 - Encontrando o deletando o arquivo mais antigo.

Como formato da data foi alterado o ls já vai mostrar por ordem de mais velho para mais novo, basta deletar o primeiro arquivo da lista.
ARQ=`ls | grep -i zip | head -n 1`
rm $ARQ

Resumindo, segue script básico
#!/bin/bash

# Criando arquivos para teste
touch 2015-12-22.zip
touch 2015-12-23.zip
touch 2015-12-24.zip
touch 2015-12-25.zip

N=`ls | grep -i zip | wc -l`

if [ $N -gt 2 ];then
ARQ=`ls | grep -i zip | head -n 1`
rm $ARQ
echo Arquivo $ARQ deletado!
else
echo NENHUM arquivo para deleção
fi



4. Fazer backup por data e apagar somente dia anterior

Willian Saldanha
williansaldanha

(usa Outra)

Enviado em 26/12/2015 - 02:51h

Olá amigo! Bom, fiz aqui, porém percebi que ele não compactou os arquivos! Criou uma pasta normal e não uma pasta zipada! E criei, propositalmente, 3 arquivos dentro do diretório e percebi que ele não apagou! O meu script está dessa forma:
#!/bin/bash
#DATA=$(date --date "0 day ago" +%d-%m-%Y)
#cp -rfv /home/Arquivos /media/hd_externo/$DATE

DATA=$(date --date "0 day ago" +%Y-%m-%d)
cp -rfv /home/Arquivos /media/hd_externo/$DATA

##Contar o numero de arquivos no diretorio
N=`ls | grep -i zip | wc -l`

##Comparar o numero de arquivos no diretorioi
if [ $N -gt 2 ];then
ARQ=`ls | grep -i zip | head -n 1`
rm $ARQ
echo Arquivo $ARQ deletado!
else
echo NENHUM arquivo para deleç
fi



5. Re: Fazer backup por data e apagar somente dia anterior

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/12/2015 - 05:16h

Exitem outras formas de compactação mais eficientes qie o formato zip, apesar de não serem nativas do Windows©.
E sobre softwares de becape, você já viu o Bácula?

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts