root / plugins / ftp / proftpd_bytes @ b925a101
Historique | Voir | Annoter | Télécharger (1,46 ko)
| 1 |
#!/bin/bash |
|---|---|
| 2 |
# |
| 3 |
# Plugin to monitor FTP bytes. |
| 4 |
# based on previous work by jintxo |
| 5 |
# |
| 6 |
# Parameters understood: |
| 7 |
# |
| 8 |
# config (required) |
| 9 |
# autoconf (optional) |
| 10 |
# |
| 11 |
# Magic markers (optional - used by munin-config and installation |
| 12 |
# scripts): |
| 13 |
# |
| 14 |
#%# family=auto |
| 15 |
#%# capabilities=autoconf |
| 16 |
|
| 17 |
|
| 18 |
mktempfile () {
|
| 19 |
mktemp -t "$1" |
| 20 |
} |
| 21 |
|
| 22 |
LOGFILE=${logfile:-/var/log/proftpd/xferlog}
|
| 23 |
LOGTAIL=${logtail:-$(which logtail)}
|
| 24 |
STATEFILE=$MUNIN_PLUGSTATE/xferlog-bytes.offset |
| 25 |
|
| 26 |
if [ "$1" = "autoconf" ]; then |
| 27 |
if [ -f "$LOGFILE" ] && [ -n "$LOGTAIL" ] && [ -x "$LOGTAIL" ] ; then |
| 28 |
echo yes |
| 29 |
else |
| 30 |
echo "no (missing logfile or 'logtail' executable)" |
| 31 |
fi |
| 32 |
exit 0 |
| 33 |
fi |
| 34 |
|
| 35 |
if [ "$1" = "config" ]; then |
| 36 |
echo 'graph_title FTP Server Bytes' |
| 37 |
echo 'graph_args --base 1000 -l 0' |
| 38 |
echo 'graph_vlabel FTP Server Bytes' |
| 39 |
echo 'graph_category network' |
| 40 |
echo 'ftp_get.label Bytes GET' |
| 41 |
echo 'ftp_put.label Bytes PUT' |
| 42 |
exit 0 |
| 43 |
fi |
| 44 |
|
| 45 |
|
| 46 |
ftp_get=U |
| 47 |
ftp_put=U |
| 48 |
|
| 49 |
TEMP_FILE=$(mktempfile munin-xferlog-bytes.XXXXXX) |
| 50 |
|
| 51 |
if [ -n "$TEMP_FILE" ] && [ -f "$TEMP_FILE" ] |
| 52 |
then |
| 53 |
"$LOGTAIL" "$LOGFILE" "$STATEFILE" | grep "[[:space:]][oi][[:space:]]" >"$TEMP_FILE" |
| 54 |
ftp_get=$(grep "[[:space:]]o[[:space:]]" "$TEMP_FILE" | awk '{s += $8} END { if ( s ) print s ; else print "0" }')
|
| 55 |
ftp_put=$(grep "[[:space:]]i[[:space:]]" "$TEMP_FILE" | awk '{s += $8} END { if ( s ) print s ; else print "0" }')
|
| 56 |
|
| 57 |
/bin/rm -f "$TEMP_FILE" |
| 58 |
fi |
| 59 |
|
| 60 |
echo "ftp_get.value $ftp_get" |
| 61 |
echo "ftp_put.value $ftp_put" |
