root / plugins / disk / e2 @ 17f78427
Historique | Voir | Annoter | Télécharger (3,26 ko)
| 1 | bffbc3d5 | bAndie91 | #!/bin/bash |
|---|---|---|---|
| 2 | |||
| 3 | 0e92a22b | bAndie91 | true << =cut |
| 4 | |||
| 5 | =head1 NAME |
||
| 6 | |||
| 7 | ext2 - Wildcard plugin shows ext2/3/4 filesystem information (mount count, last checked, lifetime writes) |
||
| 8 | |||
| 9 | =head1 CONFIGURATION |
||
| 10 | |||
| 11 | [ext2_*] |
||
| 12 | group disk,floppy |
||
| 13 | |||
| 14 | =head1 AUTHOR |
||
| 15 | |||
| 16 | Andreas Hrubak <> |
||
| 17 | |||
| 18 | =head1 LICENSE |
||
| 19 | |||
| 20 | GPLv2 |
||
| 21 | |||
| 22 | =head1 MAGICK MARKERS |
||
| 23 | |||
| 24 | #%# family=disk |
||
| 25 | #%# capabilities=autoconf |
||
| 26 | |||
| 27 | =cut |
||
| 28 | bffbc3d5 | bAndie91 | |
| 29 | print_details() {
|
||
| 30 | local myname |
||
| 31 | while read line; do |
||
| 32 | key=${line%%:*}
|
||
| 33 | val=`echo ${line#*:}`
|
||
| 34 | val1=${val%% *}
|
||
| 35 | [ -z "$line" ] && break |
||
| 36 | 17f78427 | Lars Kruse | |
| 37 | bffbc3d5 | bAndie91 | case "$key" in |
| 38 | "Mount count") myname=$1; mc=$val ;; |
||
| 39 | "Maximum mount count") mmc=$val ;; |
||
| 40 | "Last checked") lcts=`date +%s -d "$val" 2>/dev/null` ;; |
||
| 41 | "Check interval") ciis=$val1 ;; |
||
| 42 | "Lifetime writes") lwGB=$val1 ;; |
||
| 43 | esac |
||
| 44 | done |
||
| 45 | [ -n "$myname" ] && echo "$myname ${mc:-0} ${mmc:-0} ${lcts:-0} ${ciis:-0} ${lwGB:-0}"
|
||
| 46 | } |
||
| 47 | |||
| 48 | lse2() {
|
||
| 49 | for name in {h,s}d{a..z}{1..16}; do
|
||
| 50 | if [ -b /dev/$name ]; then |
||
| 51 | LANG=C dumpe2fs /dev/$name 2>/dev/null | print_details "$name" |
||
| 52 | fi |
||
| 53 | done |
||
| 54 | } |
||
| 55 | |||
| 56 | |||
| 57 | if [ "$1" = "autoconf" ]; then |
||
| 58 | 0e92a22b | bAndie91 | if which dumpe2fs >/dev/null 2>&1; then |
| 59 | bffbc3d5 | bAndie91 | echo yes |
| 60 | exit 0 |
||
| 61 | else |
||
| 62 | echo no |
||
| 63 | exit 1 |
||
| 64 | fi |
||
| 65 | fi |
||
| 66 | if [ "$1" = "suggest" ]; then |
||
| 67 | lse2 | while read name rest; do |
||
| 68 | echo mounts_$name |
||
| 69 | echo checked_$name |
||
| 70 | echo writes_$name |
||
| 71 | done |
||
| 72 | exit 0 |
||
| 73 | fi |
||
| 74 | |||
| 75 | |||
| 76 | self=${0##*/}
|
||
| 77 | self=${self#*_}
|
||
| 78 | plugin=${self%%_*}
|
||
| 79 | if [ -n "${self//[!_]/}" ]; then
|
||
| 80 | blkdev=${self#*_}
|
||
| 81 | blkdevAppend=" ($blkdev)" |
||
| 82 | else |
||
| 83 | blkdev= |
||
| 84 | blkdevAppend= |
||
| 85 | fi |
||
| 86 | |||
| 87 | |||
| 88 | if [ "$1" = "config" ]; then |
||
| 89 | |||
| 90 | echo "graph_category disk" |
||
| 91 | 18648443 | bAndie91 | args="-l 0" |
| 92 | bffbc3d5 | bAndie91 | case "$plugin" in |
| 93 | 17f78427 | Lars Kruse | mounts) |
| 94 | bffbc3d5 | bAndie91 | echo "graph_vlabel times" |
| 95 | echo "graph_title Ext2 Filesystem mount details" |
||
| 96 | ;; |
||
| 97 | checked) |
||
| 98 | 18648443 | bAndie91 | echo "graph_vlabel days" |
| 99 | bffbc3d5 | bAndie91 | echo "graph_title Ext2 Filesystem fsck interval" |
| 100 | ;; |
||
| 101 | 17f78427 | Lars Kruse | writes) |
| 102 | 18648443 | bAndie91 | args="$args --base 1024" |
| 103 | echo "graph_vlabel bytes" |
||
| 104 | bffbc3d5 | bAndie91 | echo "graph_title Ext2 Filesystem lifetime writes$blkdevAppend" |
| 105 | ;; |
||
| 106 | esac |
||
| 107 | 18648443 | bAndie91 | echo "graph_args $args" |
| 108 | 17f78427 | Lars Kruse | |
| 109 | bffbc3d5 | bAndie91 | if [ -z "$blkdev" ]; then |
| 110 | lse2 |
||
| 111 | else |
||
| 112 | LANG=C dumpe2fs /dev/$blkdev 2>/dev/null | print_details "$blkdev" |
||
| 113 | fi | \ |
||
| 114 | while read name mounts maxmounts last interval writes; do |
||
| 115 | [ -z "$blkdev" ] && blkdevAppend2=" ($name)" || blkdevAppend2= |
||
| 116 | case "$plugin" in |
||
| 117 | mounts) |
||
| 118 | echo "${name}_mounts.label Mount count$blkdevAppend2"
|
||
| 119 | echo "${name}_mounts.draw LINE2"
|
||
| 120 | echo "${name}_maxmounts.label Max. mount count$blkdevAppend2"
|
||
| 121 | echo "${name}_maxmounts.draw LINE1"
|
||
| 122 | ;; |
||
| 123 | checked) |
||
| 124 | 18648443 | bAndie91 | echo "${name}_last.label Since checked$blkdevAppend2"
|
| 125 | bffbc3d5 | bAndie91 | echo "${name}_last.draw LINE2"
|
| 126 | 18648443 | bAndie91 | echo "${name}_last.cdef ${name}_last,86400,/"
|
| 127 | bffbc3d5 | bAndie91 | echo "${name}_interval.label Check interval$blkdevAppend2"
|
| 128 | echo "${name}_interval.draw LINE1"
|
||
| 129 | 18648443 | bAndie91 | echo "${name}_interval.cdef ${name}_interval,86400,/"
|
| 130 | bffbc3d5 | bAndie91 | ;; |
| 131 | writes) |
||
| 132 | echo "${name}_writes.label Lifetime writes$blkdevAppend2"
|
||
| 133 | 18648443 | bAndie91 | echo "${name}_writes.type GAUGE"
|
| 134 | bffbc3d5 | bAndie91 | echo "${name}_writes.draw LINE2"
|
| 135 | 18648443 | bAndie91 | echo "${name}_writes.cdef ${name}_writes,1073741824,*"
|
| 136 | bffbc3d5 | bAndie91 | ;; |
| 137 | esac |
||
| 138 | done |
||
| 139 | |||
| 140 | exit 0 |
||
| 141 | fi |
||
| 142 | |||
| 143 | |||
| 144 | |||
| 145 | ## fetch ## |
||
| 146 | |||
| 147 | if [ -z "$blkdev" ]; then |
||
| 148 | lse2 |
||
| 149 | else |
||
| 150 | LANG=C dumpe2fs /dev/$blkdev 2>/dev/null | print_details "$blkdev" |
||
| 151 | fi | \ |
||
| 152 | while read name mounts maxmounts last interval writes; do |
||
| 153 | case "$plugin" in |
||
| 154 | mounts) |
||
| 155 | echo "${name}_mounts.value $mounts"
|
||
| 156 | echo "${name}_maxmounts.value $maxmounts"
|
||
| 157 | ;; |
||
| 158 | checked) |
||
| 159 | now=`date +%s` |
||
| 160 | past=$(( now - last )) |
||
| 161 | echo "${name}_last.value $past"
|
||
| 162 | echo "${name}_interval.value $interval"
|
||
| 163 | ;; |
||
| 164 | writes) |
||
| 165 | echo "${name}_writes.value $writes"
|
||
| 166 | ;; |
||
| 167 | esac |
||
| 168 | done |
