1
0
Fork 0
mirror of https://github.com/munin-monitoring/contrib.git synced 2025-07-21 18:41:03 +00:00
Munin-Contrib/plugins/disk/xfs_frag
2020-03-26 04:23:21 +01:00

66 lines
1.3 KiB
Bash
Executable file

#!/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<darac+munin@darac.org.uk>
=cut
declare -a TOKENS
shopt -s nocasematch
case $1 in
config)
cat <<'EOF'
graph_title XFS fragmentation
graph_vlabel Percent
graph_category disk
EOF
awk '{print $2 " " $3}' </etc/mtab | while read -r LINE; do
# shellcheck disable=SC2206
TOKENS=($LINE)
if [[ ${TOKENS[1]} =~ xfs ]]; then
FIELDNAME=$(echo "${TOKENS[0]}" | sed 's/^[^A-Za-z_]/_/; s/[^A-Za-z0-9_]/_/g')
echo "$FIELDNAME.label ${TOKENS[0]}"
echo "$FIELDNAME.type GAUGE"
fi
done
exit 0
;;
esac
awk '{print $2 " " $3 " " $1}' </etc/mtab | while read -r LINE; do
# shellcheck disable=SC2206
TOKENS=($LINE)
if [[ ${TOKENS[1]} =~ xfs ]]; then
FIELDNAME=$(echo "${TOKENS[0]}" | sed 's/^[^A-Za-z_]/_/; s/[^A-Za-z0-9_]/_/g')
FRAG=$(xfs_db -c frag -r "${TOKENS[2]}" | sed 's/.*fragmentation factor \(.*\)%.*/\1/')
echo "$FIELDNAME.value $FRAG"
fi
done