Advertisement
Guest User

atmos

a guest
Mar 12th, 2008
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.94 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2. require 'date'
  3. require 'fileutils'
  4. regex = /(production|nginx|mongrel|vhost)(\..+)?\.log-(\d+)\.gz/
  5. logs = {
  6.   'nginx' => [ '/var/log', '/var/log/nginx', '/var/log/engineyard/nginx' ],
  7.   'mongrel' => [ '/data/*/shared/log', '/var/log/engineyard/mongrel/*/' ]
  8. }
  9.  
  10. hostname = `hostname`.chomp
  11. logdir = '/data/logs'
  12.  
  13. logs.each do |type, dirs|
  14.   dirs.each do |dir|
  15.     basetypedir = "#{logdir}/#{type}"
  16.     FileUtils.mkdir_p basetypedir unless File.directory?(basetypedir)
  17.     Dir.glob("#{dir}/*.gz").sort.each do |file|
  18.       if file =~ regex
  19.         date = Date.parse($3)
  20.         destdir = "#{basetypedir}/#{date.strftime('%Y/%m')}"
  21.         FileUtils.mkdir_p destdir unless File.directory?(destdir)
  22.         newfile = "#{$1}#{$2}.#{date.strftime('%Y-%m-%d')}.#{hostname}.log.gz"
  23. #        puts "FileUtils.mv #{file}, #{destdir}/#{newfile}"
  24.         FileUtils.mv file, "#{destdir}/#{newfile}"
  25.       end
  26.     end
  27.   end
  28. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement