Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- require 'date'
- require 'fileutils'
- regex = /(production|nginx|mongrel|vhost)(\..+)?\.log-(\d+)\.gz/
- logs = {
- 'nginx' => [ '/var/log', '/var/log/nginx', '/var/log/engineyard/nginx' ],
- 'mongrel' => [ '/data/*/shared/log', '/var/log/engineyard/mongrel/*/' ]
- }
- hostname = `hostname`.chomp
- logdir = '/data/logs'
- logs.each do |type, dirs|
- dirs.each do |dir|
- basetypedir = "#{logdir}/#{type}"
- FileUtils.mkdir_p basetypedir unless File.directory?(basetypedir)
- Dir.glob("#{dir}/*.gz").sort.each do |file|
- if file =~ regex
- date = Date.parse($3)
- destdir = "#{basetypedir}/#{date.strftime('%Y/%m')}"
- FileUtils.mkdir_p destdir unless File.directory?(destdir)
- newfile = "#{$1}#{$2}.#{date.strftime('%Y-%m-%d')}.#{hostname}.log.gz"
- # puts "FileUtils.mv #{file}, #{destdir}/#{newfile}"
- FileUtils.mv file, "#{destdir}/#{newfile}"
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement