#!/bin/bash #%# family=auto : << EOF =head1 NAME zpool_fragmentation - Outputs the zpool fragmentation per zfs pool. =head1 AUTHOR Michael Grote - git.mgrote.net =head1 LICENSE GPLv3 or later SPDX-License-Identifier: GPL-3.0-or-later =head1 MAGIC MARKERS #%# family=auto #%# capabilities=autoconf EOF if [ "$1" = "autoconf" ]; then if ! command -v zpool &> /dev/null; then echo "no (zpool could not be found!)" else echo "yes" fi exit 0 fi # lese alle pools, sed löscht die erste zeile # entferne das %-zeichen list=$(zpool list | sed 1d | tr -d %) if [ "$1" = "config" ]; then # https://superuser.com/questions/284187/bash-iterating-over-lines-in-a-variable while read -r line; do # setze label echo "$line" | awk '{print $1".label " $1}' # setze warn-limits echo "$line" | awk '{print $1".warning " 50}' echo "$line" | awk '{print $1".critical " 75}' done <<< "$list" # setze optionen echo 'graph_title ZFS storage pool - fragmentation' # Titelzeile echo 'graph_vlabel fragmentation in %' # Text links, hochkant echo 'graph_category fs' # Kategorie echo 'graph_info This graph shows the ZFS Pool fragmentation.' # Text über Tabelle/Infos echo 'graph_args -l 0 --upper-limit 100' # wertebegrenzer 0-100 exit 0 fi # lese jede Zeile der Variable $list # tue für jede Zeile # "echo" die Zeile, wende awk drauf, Spalte $1/$7 while read -r line; do # gebe wert aus # .value echo "$line" | awk '{print $1".value " $7}' done <<< "$list" exit 0