mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-21 18:41:03 +00:00
Merge pull request #750 from shtrom/file_length_
[file_length_] A versatile plugin to count the lines in specified files
This commit is contained in:
commit
e0f6a97af7
1 changed files with 74 additions and 0 deletions
74
plugins/system/file_length_
Executable file
74
plugins/system/file_length_
Executable file
|
@ -0,0 +1,74 @@
|
|||
#!/bin/sh
|
||||
|
||||
: << =cut
|
||||
|
||||
=head1 NAME
|
||||
|
||||
file_length_ - Plugin to monitor the length of specified files
|
||||
|
||||
Useful for things such as lists (white, black, user, ...).
|
||||
|
||||
=head1 CONFIGURATION
|
||||
|
||||
[file_length_IDENTIFIER]
|
||||
env.files FILEPATHGLOB1 FILEPATHGLOB2 ...
|
||||
env.category DEFAULTS_TO_system
|
||||
env.title OPTIONAL_TITLE
|
||||
env.logarithmic 1
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Olivier Mehani <shtrom+munin@ssji.net> (based on disk/log_sizes)
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
GPLv2
|
||||
|
||||
=head1 MAGIC MARKERS
|
||||
|
||||
#%# family=manual
|
||||
|
||||
=cut
|
||||
|
||||
# needs shellcheck -x /usr/share/munin/plugins/plugin.sh
|
||||
# shellcheck source=/usr/share/munin/plugins/plugin.sh
|
||||
. "$MUNIN_LIBDIR/plugins/plugin.sh"
|
||||
|
||||
NAME=$(echo "$0" | sed 's/.*_//')
|
||||
TITLE=${title:-File lengths for $NAME}
|
||||
CATEGORY=${category:-system}
|
||||
|
||||
FILES=${files:-/var/log/messages}
|
||||
# we want globbing to happen here
|
||||
# shellcheck disable=SC2116 disable=SC2086
|
||||
FILES=$(echo $FILES)
|
||||
|
||||
|
||||
if [ "$1" = "config" ] ; then
|
||||
# shellcheck disable=SC2154
|
||||
if [ "${logarithmic}" = "1" ]; then
|
||||
graph_args="-o"
|
||||
else
|
||||
graph_args="-l 0"
|
||||
fi
|
||||
cat <<EOF
|
||||
graph_title ${TITLE}
|
||||
graph_args ${graph_args} --base 1000
|
||||
graph_category ${CATEGORY}
|
||||
graph_info This graph shows the length of ${FILES}
|
||||
graph_vlabel length (lines)
|
||||
EOF
|
||||
|
||||
for F in $FILES; do
|
||||
MF=$(clean_fieldname "$F")
|
||||
BF=$(basename "$F")
|
||||
echo "$MF.label ${BF}"
|
||||
done
|
||||
|
||||
else
|
||||
for F in $FILES; do
|
||||
MF=$(echo "$F" | sed 's/[-\/\.]/_/g')
|
||||
echo "$MF.value $(wc -l < "$F")"
|
||||
echo "$MF.extinfo $(stat --printf="%sB\n" "$F")"
|
||||
done
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue