TextDrive: Simple disk usage and HTTP bandwidth counts
This is an updated version of http://textsnippets.com/posts/show/621
#!/usr/local/bin/ruby Dir.chdir(ENV['HOME']) # Disk usage quotaline = `quota -g | tail -n 1` usage = `echo -n "#{quotaline}" | awk '{print $2}'`.to_f quota = `echo -n "#{quotaline}" | awk '{print $3}'`.to_f percent_used = (usage / quota) * 100 puts "Disk usage: " + sprintf("%.4f", usage/1024) + " MiB (Quota: " + sprintf("%.4f", quota/1024/1024) +" GiB; " + sprintf("%.1f", percent_used) + "% used)" # HTTP Bandwidth print "Calculating Bandwidth Usage..." month = `date +"%B %Y"`.chomp access_logs="access_log." + `date +%Y%m`.chomp + "??" system("cat logs/access_log 2>/dev/null > temp-bandwidthcount") # Today's log system("cat domains/*/logs/access_log 2>/dev/null >> temp-bandwidthcount") system("cat logs/#{access_logs} 2>/dev/null >> temp-bandwidthcount") # Any logs not (yet) gzipped system("cat domains/*/logs/#{access_logs} 2>/dev/null >> temp-bandwidthcount") system("zcat logs/#{access_logs}.gz 2>/dev/null >> temp-bandwidthcount") # Gzipped logs from previous days system("zcat domains/*/logs/#{access_logs}.gz 2>/dev/null >> temp-bandwidthcount") usage = `cat temp-bandwidthcount | awk '{sum += $10} END {print sum}'`.chomp.to_f / 1024 / 1024 File.delete("temp-bandwidthcount") 30.times {print "\b"} puts "Bandwidth used for #{month}: " + sprintf("%.4f", usage) + " MiB"
Installing:
Easy as 1..2..3:
curl -o rsrcmeter http://ajz.textdriven.com/rsrcmeter.txt
chmod u+x rsrcmeter
./rsrcmeter
Using in Webmin (Under Run Processes, Command to run):
export HOME="/users/home/YOURUSERNAME"; $HOME/rsrcmeter
MD5 hash: 0364b47675fee1902db1a32703cecf3f
Sample output:
Disk usage: 2.2910 MiB (Quota: 1.9073 GiB; 0.1% used) Bandwidth used for August 2006: 0.5773 MiB
Confirmed to work on:
- Cardero,
- Davie (by rsimplicio),
- Pendrell (by iolaire),
- Thurlow (by janovetz),
- Bidwell & Jervis (by springworks),
- Chilco (by atl),
- Burnaby (by igner),
- Broughton (Biz Server, by Rich),
- Howe (scoobyfoo),
- Nicola (lderezinski),
- Jervis (mjboyle), and
- One (robertb)
*Should work on any TxD shared/business server.*
instead of printing to the shell.