Script para apagar arquivos maiores que 1mega ???
Olá pessoal!
Quero fazer um script para apagar um arquivo sempre que ele chegar a 1mega de tamanho, mas como faço esse script para ver se o arquivo chegou a 1 mega ?
Outra coisa: o script sempre tem que ficar em loop constante, pois depois de algum tempo o arquivo .log chega a 1mega e precisa ser apagado novamente.
É mais ou menos assim
#!/bin/sh
for x in `ls *.log`;do
if [ "$x" -ge 1000000 ]
then
rm -fv "$x";
fi
done;
O programa sempre dá erro. Alguém sabe onde estou errando ?
Desde já agradeço pela grande ajuda.
PS: Estou usando o Kurumin 6.1
Re: Script para apagar arquivos maiores que 1mega ???
é simples colega, o seu erro é pq vc está a comparar um valor ( -ge) e nao um tamanho
o script funcionava correctamente se vc estivesse a comparar numeros, pois o "-ge" significa
Inteiro 1 is greater (maior) then or equal (igual) Interiro 2
pra pegar o tamanho de um arquivo vc tem de user o comando "ls -s arquivo"
por exemplo, o comando --> (ls -s *.log|cut -f1 -d " ")
vai lhe dar o tamanho em Kb de todos os arquivos de log, basta agora multiplicar esses valores por 1024 e vc tem em Mb..e passa ao mesmo tempo a ter numeros, os quais voce ja pode comparar usando o [ $X -ge ]
;)
agora é so adaptar ao script...
mas uma coisa... pq vc n usa o programa "logrotate" que serve mesmo para isso?
basta configurar ele para apagar os seus lgs kdno atingem o limite que vc defenir..
Um abraço.
Re: Script para apagar arquivos maiores que 1mega ???
Citação:
Postado originalmente por The-shadow
é simples colega, o seu erro é pq vc está a comparar um valor ( -ge) e nao um tamanho
o script funcionava correctamente se vc estivesse a comparar numeros, pois o "-ge" significa
Inteiro 1 is greater (maior) then or equal (igual) Interiro 2
pra pegar o tamanho de um arquivo vc tem de user o comando "ls -s arquivo"
por exemplo, o comando --> (ls -s *.log|cut -f1 -d " ")
vai lhe dar o tamanho em Kb de todos os arquivos de log, basta agora multiplicar esses valores por 1024 e vc tem em Mb..e passa ao mesmo tempo a ter numeros, os quais voce ja pode comparar usando o [ $X -ge ]
;)
agora é so adaptar ao script...
mas uma coisa... pq vc n usa o programa "logrotate" que serve mesmo para isso?
basta configurar ele para apagar os seus lgs kdno atingem o limite que vc defenir..
Um abraço.
Muito obrigado pelo ajuda amigo.
Fiz uns testes preliminares e deram certo com outros exemplos.
Desconhecia o logrotate. Vou testar aqui também para ver se atende as minhas necessidades.
Não tenho como agradecer. Obrigado mesmo mais uma vez.
Valeu.