I'm hoping this is a simple one.
I run a Rails web app where I'm hosting about 100 school websites. The one app handles all the sites, and I have a management interface where we can add and remove schools etc...
I want to add a stat to this interface which is the total disk space used by that school. Each schools files are stored in a seperate directory structure so that's easy to find out. The only problem is I need it to be fast. So the question is what's the fastest way to find this info. If it could be found via a ruby call on the fly that would be great, but I'm open to whatever will work. Ideally I'd like to avoid having to cache and background generate this data (at least at the rails level). :)
If you want to go with pure Ruby you can try this code. Although if you're looking for speed I'm sure du
would be faster.
def dir_size(dir_path)
require 'find'
size = 0
Find.find(dir_path) { |f| size += File.size(f) if File.file?(f) }
size
end
dir_size('/tmp/')