Script para verificar tamanho de diretório [RESOLVIDO]

1. Script para verificar tamanho de diretório [RESOLVIDO]

Marcelo Augusto Insabralde
insabralde

(usa Debian)

Enviado em 27/04/2009 - 10:08h

Bom dia galera...
Preparei um script para fazer o backup mensal do SARG, jogando o backup para o /HOME_DO_USUARIO/backup-sarg, onde elecria um diretorio com a data e joga lá dentro, um arquivo .GZIP e o ACCESS.LOG, mas gostaria de ser avisado toda vez que esse diretório (backup_sarg) atingisse, 650MB por exemplo, o script executasse as 10:00hs uma sequencia de 5 beeps (usando o pacote "beep") pra que eu faça a gravação do CD com o Backup e possa guardar.

Uso Debian 5 Lenny

Agradeço mais uma vez a ajuda dos companheiros.


  


2. ae

João Marcos Menezes
stremer

(usa Arch Linux)

Enviado em 27/04/2009 - 12:20h

amigo, para obter o espaço, você deve utilizar o du dentro do diretório, por exemplo

----- Ler o espaço ocupado ----
#!/bin/bash
cd /home/usuario/diretorio_a_verificar
espaco=`du -sk | awk '{print $1}'`
cd -
echo $espaco
--- Fim -----

Ai com a variavel espaco (já em kbytes), você pode comparar com o total de bytes que deseja para fazer o que quiser.

Agora uma SUGESTÃO!

No seu caso, oque EU faria...
Todo dia iria rodar este script e verificaria se o diretório esta com o tamanho do CD ou DVD...
Então pegaria o conteúdo e iria copiar para uma area temporária, e depois apagava o conteúdo (para ja deixar o diretório de uso pronto). Deveria fazer um tratamento para copiar no maximo 650MB ou 4.7GB.
Então utilizaria um criador de ISO por linha de comando para deixar a ISO prontinha, e então poderia apagar os arquivos.

Ai depende de você, mas caso o server tenha um cd sem uso, poderia até já queimar a iso no CD, e no fim do dia (ou depois dos beep) você ia la e trocar o CD por outro virgem.

Boa sorte!



3. To quase lah....

Marcelo Augusto Insabralde
insabralde

(usa Debian)

Enviado em 27/04/2009 - 15:45h

Peguei sua dica e montei esse script (por mais que eu naum manje de IF, ELSE) tentei fazer, mas não to conseguindo finalizar, dah erro.
Outra coisa, o script vai ser rodado todo final de mes, é qdo o backup será feito (1x mes).
Segue o Script


#!/bin/bash

#Criando Variaveis
espaco=`du -sk | awk '{print $1}'`

#Verificando o espaco
cd /home/USER/backup_sarg
#cd -
echo $espaco

#Comparando o espaco
if $espaco >= 706560 then
/usr/bin/beep -r 10

else
/usr/bin/beep -r 1
end if

exit


Obrigado pela ajuda


4. Re: Script para verificar tamanho de diretório [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 27/04/2009 - 16:20h

no IF a estrutura correta seria:

if [ $espaco -ge 706560 ]; then
/usr/bin/beep -r 10
else
/usr/bin/beep -r 1
fi


5. Valew

Marcelo Augusto Insabralde
insabralde

(usa Debian)

Enviado em 27/04/2009 - 17:00h

Copiei o final do script sugerido pelo "fdmarp" e aki funfou...

Valew mesmo pela ajuda... stremer e fdmarp

Very very thanks !!!

Abraço e t+


6. ae

João Marcos Menezes
stremer

(usa Arch Linux)

Enviado em 27/04/2009 - 17:59h

amigo, só mais uma dica.

Primeiro é preciso acessar o diretório que quer saber quanto espaço esta ocupando antes de chamar o du, a não ser que o script esteja no mesmo dir.

Ficaria assim:

#!/bin/bash

#Verificando o espaco
cd /home/USER/backup_sarg

#Criando Variaveis
espaco=`du -sk | awk '{print $1}'`

cd -
echo $espaco

.
.
.

Do restante... é esse mesmo o caminho!

PS: O cd - é para retornar ao diretório anterior caso o script não esteja no mesmo diretório que se quer verificar o espaço. Você poderia encapsular tudo isso em uma função tbem.

Boa sorte!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts