You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.6 KiB
60 lines
1.6 KiB
#!/bin/bash |
|
|
|
if test -e /etc/doskio.conf; then |
|
. /etc/doskio.conf |
|
fi |
|
|
|
path=( ${CHECKPATHES} ) |
|
filename=tmp/test.${HOSTNAME} |
|
while test $# -gt 0; do |
|
case $1 in |
|
(-h|--help) cat <<EOF |
|
$0 [OPTIONS] PATH… |
|
|
|
-h, --help show this help |
|
-t, --tmpfile <filename> filename for temporary file (default: ${filename}) |
|
|
|
PATH |
|
|
|
Path to check. |
|
|
|
DESCRIPTION |
|
|
|
Icinga plugin to check whether a given path is writable and checks the |
|
performance of the given path. Detects problems with the filesystem or |
|
specific io performance. Writes a test file using `dd` and reports |
|
write speed. It is recommended to use a subdirectory tmp for writing |
|
test files. |
|
|
|
EOF |
|
exit;; |
|
(-t|--tmpfile) shift; filename=$1;; |
|
(*) if ! test -d $1; then |
|
echo "ERROR: please specify an existing path, not $1" 1>&2 |
|
exit 1 |
|
fi |
|
path+=( "$1" );; |
|
esac |
|
if test $# -lt 1; then |
|
echo "ERROR: missing option, try $0 --help" |
|
exit 1 |
|
fi |
|
shift |
|
done |
|
if test ${#path[@]} -eq 0; then |
|
echo "ERROR: missing path, try $0 --help" |
|
exit 1 |
|
fi |
|
result=0 |
|
for file in "${path[@]}"; do |
|
check=$(dd if=/dev/zero of=${file}/${filename} bs=2M count=2 iflag=fullblock 2>&1 | sed -n 's/.*, *\([^, ]*\) *\([^, ]*\), *\([^ ,]*\) *\([^, ]*\)/'"${file//\//\\/}"'; time=\1\2 speed=\3\4/p') |
|
status=$? |
|
if rm ${file}/${filename} 2> /dev/null && test $status -eq 0; then |
|
status="OK - $check" |
|
else |
|
status="CRITICAL - ${file}" |
|
result=2 |
|
fi |
|
echo ${status} |
|
done |
|
exit $result
|
|
|