Como avisar quantos becapes ainda posso fazer no disco em uso? [RESOLVIDO]

1. Como avisar quantos becapes ainda posso fazer no disco em uso? [RESOLVIDO]

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 08/05/2014 - 10:58h

Oi galera...

Tava criando um script de backup que está funcional. só que além disso queria criar um arquivo de controle tipo log que fosse me indicando quando o HD fosse ficando cheio e fizesse um cálculo de quantos becapes ainda poso fazer considerando o espaço livre.

Tamanho do becape ( criado diariamente ): 215 GB

Tamanho do Disco: 2 TB

segue o trecho do script até onde consegui...

#*****************************************************************************

#Descobrir o tamanho da pasta de becape

tamanho=`du -hs $pasta| cut -f1`
echo "O tamanho da pasta é $tamanho" >> /root/backup/controle.txt

Resultado:

O tamanho da pasta é 215G


###################

# Avisar quanto ainda tem de espaço em disco

var=`df -h | grep backup-bkpservidores | cut -d" " -f9`
limite=90
percent=`echo $var | tr % " "`
if [ $percent -le 90 ]; then
echo "Disco com $var de sua capacidade total em uso, ainda é possível realizar becapes" >> /root/backup/controle.txt
else
echo "Disco cheio! Excluir backups antigos." >> /root/backup/controle.txt
fi

echo "-------------------------------------------------------------------------------------" >> /root/backup/controle.txt

Resultado:

-------------------------------------------------------------------------------------
Início da criação de pasta de backup às:
Thu May 8 09:43:59 BRT 2014
Término da criação de pasta de backup às:
Thu May 8 09:57:02 BRT 2014
Disco com 68% de sua capacidade total em uso, ainda é possível realizar becapes
-------------------------------------------------------------------------------------

#*****************************************************************************

Só que eu queria que ele fizesse assim:

Echo "Disco com $var de sua capacidade total em uso, ainda é possível realizar [ x ] becapes"

Considerando que o tamanho do becape é $tamanho ( 215GB , mas pode variar ) e fizesse a quanta de quantos becapes desse tamanho ainda dá pra faezr considerando o espaço livre do disco, se o tamanho da pasta de becape mudar tipo de 215 GB para 340GB que ele recalculasse baseado no novo padrão de tamanho.

Alguém pode me ajudar?




  


2. Re: Como avisar quantos becapes ainda posso fazer no disco em uso? [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 08/05/2014 - 11:09h

Cara, use o bacula e seja feliz!!

http://www.bacula.com.br


3. Re: Como avisar quantos becapes ainda posso fazer no disco em uso? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/05/2014 - 11:11h

Monitora com o Nagios e altere o script para fazer o calculo e lançar no echo de Ok, Warning ou Critical. Com o Nagios você pode também configurar um handler para expurgar quando por exemplo chegar em Critical.


4. Re: Como avisar quantos becapes ainda posso fazer no disco em uso? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/05/2014 - 11:22h

essa questão não faz muito sentido...

Se pensar um pouco verá que o limite teorico máximo é de 2000 GB

Se o backup em média (hoje) está dando 215 GB, basta dividir o tamanho do disco/ tamanho do backup atual que terá em torno de 8 a 9 "espaços"

O primeiro problema é que o tamanho do backup irá crescendo com o tempo....

e não dá para saber o tamanho final antes de começar a fazer o backup... então pesquisar o espaço existente antes não faz sentido...

O mais lógico é rotacionar os backups antes de começar a fazer .... isso garante que o mais antigo será excluido antes do mais novo começar a ser feito...


Teoricamente poderá ter 6 backups de até 333 GB neste HD...

isso dá para segunda a sábado.... mais o mais antigo precisa sair antes do novo entrar....


5. Função criada

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 09/05/2014 - 10:29h

Fica aí a forma que eu consegui.

Para as variáveis eu usei uma redundância chamando-as de variávelnome e variávelnome_H (Humam Mode) para mostrar resultados com unidades de medida (Tb, Gb, ou Mb) e outra para pegar apenas o valor modular para a realização de cálculos.




####################################
Funcao_calcula_becapes(){

tamanho_pasta_H=`du -hs $pasta| cut -f1`
tamanho_pasta=`du -hs $pasta| cut -f1| tr G " "`
#
uso_H=`df -h | grep backup-bkpservidores | cut -d" " -f9`
uso=`echo $uso | tr % " "`
#
livre_H=`df -h | grep backup-bkpservidores | cut -d" " -f7`
livre=`echo $livre | tr G " "`
#
limite=90
#
qtdbecapes=$(echo "$livre/$tamanho_pasta" | bc)
#
echo "Tamanho total do becape: $tamanho_pasta_H" >> /root/backup/controle.txt
#
if [ $uso -le 90 ]; then
echo "Disco com $uso de sua capacidade total em uso, ainda é possível realizar $qtdbecapes becapes" >> /root/backup/controle.txt
else
echo "Disco cheio! Excluir backups antigos." >> /root/backup/controle.txt
fi
#
echo "-------------------------------------------------------------------------------------" >> /root/backup/controle.txt
}
#################
.
.
.
Funcao_calcula_becapes


Resultado:

.
.
.
-------------------------------------------------------------------------------------

Início da criação de pasta de backup às:
Thu May 8 20:00:01 BRT 2014
Término da criação de pasta de backup às:
Fri May 9 05:45:16 BRT 2014
Tamanho total do becape: 218G
Disco com 78% de sua capacidade total em uso, ainda é possível realizar 1 becape(s)
-------------------------------------------------------------------------------------








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts