Mac Spotlight + Ruby + Limpeza
Posted on May 26, 2008
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 |
#!/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.
blog comments powered by Disqus
Archives
- February 12(2)
- December 11(1)
- November 11(4)
- October 11(6)
- September 11(5)
- August 11(1)
- July 11(5)
- May 11(4)
- April 11(11)
- March 11(4)
- February 11(3)
- January 11(4)
- December 10(9)
- November 10(2)
- October 10(10)
- September 10(4)
- August 10(6)
- July 10(14)
- June 10(16)
- May 10(8)
- April 10(14)
- March 10(9)
- February 10(6)
- January 10(14)
- December 09(10)
- November 09(10)
- October 09(7)
- September 09(19)
- August 09(4)
- July 09(12)
- June 09(7)
- May 09(12)
- April 09(11)
- March 09(9)
- February 09(9)
- January 09(12)
- December 08(14)
- November 08(20)
- October 08(15)
- September 08(18)
- August 08(25)
- July 08(13)
- June 08(21)
- May 08(29)
- April 08(27)
- March 08(12)
- February 08(32)
- January 08(31)
- December 07(27)
- November 07(30)
- October 07(25)
- September 07(28)
- August 07(16)
- July 07(15)
- June 07(16)
- May 07(7)
- April 07(13)
- March 07(8)
- February 07(9)
- January 07(24)
- December 06(17)
- November 06(17)
- October 06(15)
- September 06(38)




