2010-10-20 16:14:00 +02:00
|
|
|
#!/bin/sh
|
|
|
|
#
|
|
|
|
# (c)2009, Christian Kujau <lists@nerdbynature.de> modified by dano229
|
|
|
|
# Based on the 'homedirs' plugin, initially written in Perl by Philipp Gruber <pg@flupps.net>
|
|
|
|
#
|
|
|
|
# We still need a cronjob to update CACHEFILE once in a while, e.g.:
|
|
|
|
# 0 * * * * root [ -O /tmp/munin-du_multidirs.cache ] && du -sk /dir /dir2 dir3/* > /tmp/munin-du_multidirs.cache
|
|
|
|
#
|
|
|
|
CACHEFILE=/tmp/munin-du_multidirs.cache
|
|
|
|
|
|
|
|
if [ "$1" = "autoconf" ]; then
|
|
|
|
echo yes
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$1" = "config" ]; then
|
|
|
|
echo 'graph_title Directory usage'
|
|
|
|
echo 'graph_args --base 1024 -l 1'
|
|
|
|
echo 'graph_vlabel Bytes'
|
|
|
|
echo 'graph_category disk'
|
|
|
|
echo 'graph_info This graph shows the size of several directories'
|
|
|
|
|
|
|
|
awk '!/lost\+found/ {print $2 }' $CACHEFILE | sort | while read label; do
|
|
|
|
field=`echo "$label" | sed 's/^[^A-Za-z_]/_/' | sed 's/[^A-Za-z0-9_]/_/g'`
|
|
|
|
echo "$field".label "$label"
|
|
|
|
echo "$field".draw LINE1
|
|
|
|
# echo "$field".warning 0
|
|
|
|
# echo "$field".critical 0
|
|
|
|
done
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
awk '!/lost\+found/ { sub(/[^a-zA-Z_]/,"_",$2); gsub(/[^a-zA-Z0-9_]/,"_",$2); print $2".value "$1 * 1024 }' $CACHEFILE | sort -r -n -k2
|