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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts