root / plugins / zfs / zfs_pool_dataset_count @ f63321c5
Historique | Voir | Annoter | Télécharger (1,6 ko)
| 1 |
#!/bin/bash |
|---|---|
| 2 |
#%# family=auto |
| 3 |
|
| 4 |
: << EOF |
| 5 |
=head1 NAME |
| 6 |
|
| 7 |
zfs_pool_dataset_count - Outputs the count of zfs pools, datasets and snapshots. |
| 8 |
|
| 9 |
=head1 AUTHOR |
| 10 |
|
| 11 |
Michael Grote |
| 12 |
|
| 13 |
=head1 LICENSE |
| 14 |
|
| 15 |
GPLv3 or later |
| 16 |
|
| 17 |
SPDX-License-Identifier: GPL-3.0-or-later |
| 18 |
|
| 19 |
=head1 MAGIC MARKERS |
| 20 |
|
| 21 |
#%# family=auto |
| 22 |
|
| 23 |
=cut |
| 24 |
|
| 25 |
EOF |
| 26 |
|
| 27 |
if [ "$1" = "autoconf" ]; then |
| 28 |
if ! command -v zpool &> /dev/null; then |
| 29 |
echo "no (zpool could not be found)" |
| 30 |
else |
| 31 |
echo "yes" |
| 32 |
fi |
| 33 |
exit 0 |
| 34 |
fi |
| 35 |
|
| 36 |
|
| 37 |
# lese alle pools, sed löscht die erste zeile |
| 38 |
list_pools=$(zpool list | sed 1d) |
| 39 |
|
| 40 |
|
| 41 |
if [ "$1" = "config" ]; then |
| 42 |
# https://superuser.com/questions/284187/bash-iterating-over-lines-in-a-variable |
| 43 |
while read -r line; do |
| 44 |
# setze label <pool>.label <pool> snapshots |
| 45 |
echo "$line" | awk '{print $1"_snapshot.label " $1 " snapshots"}'
|
| 46 |
echo "$line" | awk '{print $1"_dataset.label " $1 " datasets"}'
|
| 47 |
done <<< "$list_pools" |
| 48 |
echo 'pools.label pools' |
| 49 |
# setze optionen |
| 50 |
echo 'graph_title zfs - pool, dataset and snapshot count' # Titelzeile |
| 51 |
echo 'graph_vlabel count' # Text links, hochkant |
| 52 |
echo 'graph_category fs' # Kategorie |
| 53 |
echo 'graph_args -l 0' # wertebegrenzer 0-100 |
| 54 |
exit 0 |
| 55 |
fi |
| 56 |
|
| 57 |
# lese jede Zeile der Variable $list |
| 58 |
# tue für jede Zeile |
| 59 |
# "echo" die Zeile, wende awk drauf, Spalte $1/$7 |
| 60 |
while read -r line; do |
| 61 |
echo pools.value "$(zpool list | sed 1d | wc -l)" |
| 62 |
# setze poolnamen |
| 63 |
poolname=$(echo "$line" | awk '{ print $1 }')
|
| 64 |
# zähle snapshots |
| 65 |
echo "${poolname}_snapshot.value" "$(zfs list -r -t snapshot "$poolname" | sed 1d | wc -l)"
|
| 66 |
echo "$poolname""_dataset.value" "$(zfs list -r "$poolname" | sed 1d | wc -l)" |
| 67 |
done <<< "$list_pools" |
| 68 |
exit 0 |
