gluster-web-interface/app/helpers/home_helper.rb
2016-09-26 18:06:53 +09:00

43 lines
1.2 KiB
Ruby

module HomeHelper
def get_du(dir)
du = Array.new
du_each = Hash.new
command = String.new
avail = 0.0
if dir.eql? "/"
command = "sudo df /"
s = `#{command}`.split("\n")[1].split(" ")
avail = s[2].to_f + s[3].to_f
else
command << "sudo du -s #{dir}"
begin
avail = `#{command}`.split(" ")[0].to_f
rescue
# some directory is not connected
avail = `#{command}`.split(" ")[1].to_f
end
end
command << "sudo du -s #{dir}/*"
puts command
output = `#{command}`.split("\n")
output.each do |t|
begin
du_each['usage'] = t.split(" ")[0].to_f / avail
du_each['file_name'] = t.split(" ")[1].split("/").last
du << du_each
du_each = Hash.new
rescue
# directory is not connected
du_each['usage'] = 0.0
du_each['file_name'] = t.split(" ")[1].split("/").last.split("'")[0]
du << du_each
du_each = Hash.new
end
end
return du
end
end