Apagar Backup antigos [RESOLVIDO]

1. Apagar Backup antigos [RESOLVIDO]

Eduardo Schuh Pereira
schuhpereira

(usa Ubuntu)

Enviado em 10/06/2016 - 18:46h

Boa noite galera

Criei um script que faz backup da pasta /home do usuário. A cópia está funcionando bem copia tudo bem certinho.
Mas fica muito ruim porque tenho que apagar os backups anteriores manualmente, as vezes eu me esqueço de apagar.

Abaixo mostro como está o script

1)

ORIGEM2="/home/$USER"
ORIGEM3="/etc/NetworkManager/system-connections"
DESTINO="/media/$USER/BACKUP/Backup/backup-`date`"
DIAS=1
EXCDESTINO="/media/$USER/BACKUP/Backup/"

#echo
#Backup da pasta /home/$user
echo "Copiando a pasta /home do usuário" && sleep 1
total=$(du -s "$ORIGEM2" | awk '{print $1}')

cp -r "$ORIGEM2" "$DESTINO" &>/dev/null &

while true
do
[[ -z $(pidof cp) ]] && break

copiado=$(du -s "$DESTINO" | awk '{print $1}')
echo "# Copiando arquivos....$((copiado*100/total))%"

done | yad --progress --value=0 --auto-close --no-cancel --auto-kill

echo
# Salva as senhas da rede wifi
echo "Copiando a pasta contendo as redes wifi salvas!" && sleep 1
total=$(du -s "$ORIGEM3" | awk '{print $1}')

cp -r "$ORIGEM3" "$DESTINO" &>/dev/null &

while true
do
[[ -z $(pidof cp) ]] && break

copiado=$(du -s "$DESTINO" | awk '{print $1}')
echo "# Copiando arquivos....$((copiado*100/total))%"

done | yad --progress --value=0 --auto-close --no-cancel --auto-kill

echo
echo "Backup realizado com sucesso." && sleep 5

# Exclusão dos arquivos com mais de 1 dia
echo "Excluindo arquivos com mais de $DIAS dia..."

find $EXCDESTINO -ctime +$DIAS -type f -exec rm -rvf {} \;

echo "Saindo e voltando para o menu" && sleep 5

break ;;

O problema é que ele não apaga os arquivos anteriores, dizendo que o diretório não foi encontrado.

Alguém pode dar um help?


  


2. Re: Apagar Backup antigos [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 10/06/2016 - 22:08h

Antes de iniciar o backup adicione em seu script uma função para criar uma lista de tudo que há dentro do diretório do backup e quando o backup terminar e somente se correr tudo bem adicione ao final outra função que use esta lista para apagar os backup's antigos.

Mas atenção certifique-se que o backup foi feito com sucesso pois no caso de falha e o script continuar e apagar os antigos a longo prazo pode ser desastroso .





=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================





3. Re: Apagar Backup antigos [RESOLVIDO]

Eduardo Schuh Pereira
schuhpereira

(usa Ubuntu)

Enviado em 13/06/2016 - 19:20h

Entendi o que você me explicou.

Mas fiz apenas uma mudança, conforme mostro abaixo

ORIGEM2="/home/$USER"
ORIGEM3="/etc/NetworkManager/system-connections"
DESTINO="/media/$USER/BACKUP/Backup/backup-`date`"
DIAS=-2
EXCDESTINO="/media/$USER/BACKUP/Backup/*"

#echo
#Backup da pasta /home/$user
echo "Copiando a pasta /home do usuário" && sleep 1
total=$(du -s "$ORIGEM2" | awk '{print $1}')

cp -r "$ORIGEM2" "$DESTINO" &>/dev/null &

while true
do
[[ -z $(pidof cp) ]] && break

copiado=$(du -s "$DESTINO" | awk '{print $1}')
echo "# Copiando arquivos....$((copiado*100/total))%"

done | yad --progress --value=0 --auto-close --no-cancel --auto-kill

echo
# Salva as senhas da rede wifi
echo "Copiando a pasta contendo as redes wifi salvas!" && sleep 1
total=$(du -s "$ORIGEM3" | awk '{print $1}')

cp -r "$ORIGEM3" "$DESTINO" &>/dev/null &

while true
do
[[ -z $(pidof cp) ]] && break

copiado=$(du -s "$DESTINO" | awk '{print $1}')
echo "# Copiando arquivos....$((copiado*100/total))%"

done | yad --progress --value=0 --auto-close --no-cancel --auto-kill

echo
echo "Backup realizado com sucesso." && sleep 5

# Exclusão dos arquivos com mais de 1 dia
echo "Excluindo arquivos com mais de $DIAS dia..."

find $EXCDESTINO -ctime -$DIAS -type d -exec rm -rvf {} \;

echo "Saindo e voltando para o menu" && sleep 5

break ;;




4. Re: Apagar Backup antigos [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 13/06/2016 - 22:57h

Tenho um script para backup aqui https://mega.nz/#!X8YxlCjI!wn7RRkiWf40D6bKVJySkNiqhMi0bFAg0-tCW6O1J9Kk talvez possa te ajuda, escrevi quando eu estava aprendendo a fuçar no rsync, agendei ele no cron algumas vezes e sempre rodou certinho.

Para executar é só digitar:
./backup /midia/de/backup /diretório 


Mesmo que a mídia esteja desmontada ele monta e faz o resto como copiar de forma recursiva, salvando permissões, links, empacota e compacta mas na época eu me preocupava mais com a saída do script kkkkkkkk.






=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts