some change into an actual framework
This commit is contained in:
parent
cee69984d5
commit
6b163b995e
34
driver.sh
Executable file
34
driver.sh
Executable file
@ -0,0 +1,34 @@
|
||||
#! /bin/sh
|
||||
cd "$(dirname "$0")" || exit 1
|
||||
|
||||
ok() {
|
||||
echo "[OK] $3"
|
||||
}
|
||||
|
||||
warn() {
|
||||
echo "[WARN] $3"
|
||||
}
|
||||
|
||||
run_module() {
|
||||
set -eu
|
||||
|
||||
. "$1"
|
||||
echo "$name"
|
||||
|
||||
if [ "$available" -ne 1 ]; then
|
||||
echo "- not available"
|
||||
return
|
||||
fi
|
||||
|
||||
check
|
||||
}
|
||||
|
||||
ls modules | while IFS= read -r module; do
|
||||
[ -f "modules/$module" ] || continue
|
||||
( run_module "modules/$module" )
|
||||
if [ "$?" -ne 0 ]; then
|
||||
echo "Error running module: $module"
|
||||
echo
|
||||
fi
|
||||
echo
|
||||
done
|
||||
44
fs.sh
44
fs.sh
@ -1,44 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
THRESHOLD=90
|
||||
|
||||
echo "Checking disk usage (>= $THRESHOLD%)"
|
||||
df -P | while IFS= read -r line; do
|
||||
case "$line" in
|
||||
Filesystem*|"") continue ;;
|
||||
esac
|
||||
|
||||
fs=$(printf '%s\n' "$line" | awk '{print $1}')
|
||||
usep=$(printf '%s\n' "$line" | awk '{print $5}' | tr -d '%')
|
||||
mountp=$(printf '%s\n' "$line" | awk '{print $6}')
|
||||
|
||||
# skip empty or loop devices
|
||||
case "$fs" in
|
||||
""|/dev/loop*) continue ;;
|
||||
esac
|
||||
|
||||
if [ "$usep" -ge "$THRESHOLD" ] 2>/dev/null; then
|
||||
printf 'WARNING: %s is %s%% full (mounted on %s)\n' "$fs" "$usep" "$mountp"
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
echo "Checking inode usage (>= $THRESHOLD%)"
|
||||
df -P -i | while IFS= read -r line; do
|
||||
case "$line" in
|
||||
Filesystem*|"") continue ;;
|
||||
esac
|
||||
|
||||
fs=$(printf '%s\n' "$line" | awk '{print $1}')
|
||||
usep=$(printf '%s\n' "$line" | awk '{print $5}' | tr -d '%')
|
||||
mountp=$(printf '%s\n' "$line" | awk '{print $6}')
|
||||
|
||||
# skip empty or loop devices
|
||||
case "$fs" in
|
||||
""|/dev/loop*) continue ;;
|
||||
esac
|
||||
|
||||
if [ "$usep" -ge "$THRESHOLD" ] 2>/dev/null; then
|
||||
printf 'WARNING: %s has %s%% inode usage (mounted on %s)\n' "$fs" "$usep" "$mountp"
|
||||
fi
|
||||
done
|
||||
26
modules/fs-capacity.sh
Normal file
26
modules/fs-capacity.sh
Normal file
@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
THRESHOLD=90
|
||||
|
||||
name='Filesystem Usage'
|
||||
available=1
|
||||
recommend=1
|
||||
|
||||
check() {
|
||||
df -P | while IFS= read -r line; do
|
||||
case "$line" in
|
||||
Filesystem*|"") continue ;;
|
||||
/dev/loop*) continue ;;
|
||||
esac
|
||||
|
||||
fs=$(printf '%s\n' "$line" | awk '{print $1}')
|
||||
usep=$(printf '%s\n' "$line" | awk '{print $5}' | tr -d '%')
|
||||
mountp=$(printf '%s\n' "$line" | awk '{print $6}')
|
||||
|
||||
if [ "$usep" -ge "$THRESHOLD" ] 2>/dev/null; then
|
||||
warn "$mountp" "$usep" "$fs mounted at $mountp is $usep% full"
|
||||
else
|
||||
ok "$mountp" "$usep" "$fs mounted at $mountp is $usep% full"
|
||||
fi
|
||||
done
|
||||
}
|
||||
32
modules/fs-inode.sh
Normal file
32
modules/fs-inode.sh
Normal file
@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
|
||||
THRESHOLD=90
|
||||
|
||||
name='Filesystem Inode Usage'
|
||||
available=1
|
||||
recommend=1
|
||||
|
||||
check() {
|
||||
df -i -P | while IFS= read -r line; do
|
||||
case "$line" in
|
||||
Filesystem*|"") continue ;;
|
||||
/dev/loop*) continue ;;
|
||||
esac
|
||||
|
||||
fs=$(printf '%s\n' "$line" | awk '{print $1}')
|
||||
use_count=$(printf '%s\n' "$line" | awk '{print $3}')
|
||||
usep=$(printf '%s\n' "$line" | awk '{print $5}' | tr -d '%')
|
||||
mountp=$(printf '%s\n' "$line" | awk '{print $6}')
|
||||
|
||||
if [ "$use_count" -eq 0 ] 2>/dev/null; then
|
||||
# likely a file system with no inodes, skip it
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ "$usep" -ge "$THRESHOLD" ] 2>/dev/null; then
|
||||
warn "$mountp" "$usep" "$fs mounted at $mountp has $usep% inode usage"
|
||||
else
|
||||
ok "$mountp" "$usep" "$fs mounted at $mountp has $usep% inode usage"
|
||||
fi
|
||||
done
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user