26
Mac Spotlight + Ruby + Limpeza
by AkitaOnRails on May.26.2008 at 01:39am
Outro dia eu estava com meu HD quase todo ocupado. Obviamente eu fiquei pasmo pois eu guardo quase tudo que não é essencial nos meus HDs externos, incluindo coisas como meu iTunes Library. Então pensei, “como diabos estou com tanto espaço ocupado?”
Abri meu GrandPerspective para dar um Raio X nos meus diretórios e encontrar quem era o culpado. Se eu trabalhasse mais com iMovie entenderia já que ele usa arquivos gigantescos. Não demorou para entender o que se passava.
Qual não foi minha surpresa ao encontrar gigabytes de arquivos de log! De aplicações Rails! Daí a conclusão era óbvia: como eu rodava constantemente suites de teste, eles vão acumulando rapidamente dentro dos test.log em cada projeto Rails.
Bom, vasculhar diretório a diretório de projeto seria maçante. Como estou num Mac a outra solução seria simplesmente abrir o Spotlight e usar a query “kind:log” dentro do meu diretório de projetos. Daí Command-A e Delete.
Mesmo assim, acho que ainda dá para fazer melhor. Nos Macs o Spotlight é acessível via alguns comandos que podem ser executados via terminal, como o mdfind. É um truque velho e sempre funciona. Já que é assim, por que não aproveitar que todo Mac vem com Ruby embutido e não fazer um scriptzinho de uma vez? Foi o que fiz, criei um “delete_logs.rb” no meu home com o seguinte conteúdo:
1 2 3 4 5 6 7 8 9 10 11 |
#!/opt/local/bin/ruby buffer = `mdfind kind:log -onlyin ~/rails` list = buffer.split("\n") total = 0 list.each do |file| total += File.size(file) File.delete(file) print "." end puts "\nRecovered space: #{total / (1024 * 1024)}Mb" |
Finalmente, “chmod +x delete_logs.rb” e voilá, agora ficou simples de me livrar dos logs.







Hehehe
Isso aconteceu comigo certa vez, só que em site que eu usava para desenvolver meu TCC.
De uma hora pra outra, notei que os downloads dos backups começaram a demorar muito para ser feitos. Quando fui ver, tinha quase 80mb de log. Achei que fosse algum tipo de barbeiragem minha e que tivesse alguma maneira de setar um limite para o log, mas se o Akita teve o mesmo problema eu me sinto menos newbie ;)
Primeira app rails que fiz demorei horas para manadar pro servidor (ftp mesmo sem capistrano ou cvm) e depois que fui ver que nao tinha limpado os logs nem as pastas tmp ….
A primeira coisa que eu faço quando começo a usar uma máquina, e sei que vou usá-la por algum tempo, é instalar o Ruby.
Esses scripts quebram muito o galho. Qualquer coisa que estou precisando, algum trabalho repetitivo ou coisa do tipo, faço um “scriptizinho” Ruby.
Esse aí é mais um para minha coleção!
Interessante. No linux, você pode substituir a linha 3 por buffer = `find ~/rails -name ’*.log’`, considerando que todas suas aplicações tão em ~/rails.