+ Responder ao Tópico



  1. #1

    Padrão 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

  2. #2

    Padrão 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.

  3. #3

    Padrã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.