#!/bin/bash : <<=cut =head1 NAME xfs_frag - Munin plugin to monitor the fragmentation level on your XFS filesystems =head1 APPLICABLE SYSTEMS Any machine with an XFS file system. =head1 CONFIGURATION None, generally, but you may want to run as root and set a timeout. [xfs_frag] user root timeout 90 =head1 MAGIC MARKERS #%# family=auto contrib #%# capabilities= =head1 VERSION 1 =head1 AUTHOR Paul Saunders L =cut declare -a ARRY shopt -s nocasematch case $1 in config) cat <<'EOF' graph_title XFS fragmentation graph_vlabel Percent graph_category disk EOF cat /etc/mtab | awk '{print $2 " " $3}' | while read LINE do ARRY=($LINE) if [[ ${ARRY[1]} =~ xfs ]]; then FIELDNAME=$(echo ${ARRY[0]} | sed 's/^[^A-Za-z_]/_/; s/[^A-Za-z0-9_]/_/g') echo "$FIELDNAME.label ${ARRY[0]}" echo "$FIELDNAME.type GAUGE" fi done exit 0 ;; esac cat /etc/mtab | awk '{print $2 " " $3 " " $1}' | while read LINE do ARRY=($LINE) if [[ ${ARRY[1]} =~ xfs ]]; then FIELDNAME=$(echo ${ARRY[0]} | sed 's/^[^A-Za-z_]/_/; s/[^A-Za-z0-9_]/_/g') FRAG=$(xfs_db -c frag -r ${ARRY[2]} | sed 's/.*fragmentation factor \(.*\)%.*/\1/') echo $FIELDNAME.value $FRAG fi done