Pular para o conteúdo

Apagar Backup antigos [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Apagar Backup antigos [RESOLVIDO]

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?

Responder tópico

2. Re: Apagar Backup antigos [RESOLVIDO]

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]

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]

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

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder