-p added and GENERIC_ZFSPOOL_USAGE_CHECK uses ssh

This commit is contained in:
Martin Berghaus
2025-03-26 00:55:51 +01:00
parent f92251e409
commit 9597e32b62
2 changed files with 47 additions and 22 deletions

View File

@@ -26,10 +26,10 @@ function checkViaHTTPS() {
} }
function checkOrStartSSHMaster() { function checkOrStartSSHMaster() {
timeout --preserve-status 1 "ssh -O check -S ${_SOCKET} ${_REMOTE_USER}@${_REMOTE_HOST}" &> /dev/null \ timeout --preserve-status 1 "ssh -O check -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST}" &> /dev/null \
&& return 0 && return 0
ssh -O stop -S ${_SOCKET} ${_REMOTE_USER}@${_REMOTE_HOST} &> /dev/null ssh -O stop -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST} &> /dev/null
ssh -o ControlMaster=auto \ ssh -o ControlMaster=auto \
-o ControlPath=${_SOCKET} \ -o ControlPath=${_SOCKET} \
-o ControlPersist=65 \ -o ControlPersist=65 \
@@ -51,7 +51,7 @@ function checkViaSSH() {
checkOrStartSSHMaster \ checkOrStartSSHMaster \
|| return 1 || return 1
_RESULT=$(ssh -S ${_SOCKET} ${_REMOTE_USER}@${_REMOTE_HOST} 'systemctl status nginx.service' | grep -E 'Active:.*\(running\)' | cut -d';' -f2) _RESULT=$(ssh -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST} 'systemctl status nginx.service' | grep -E 'Active:.*\(running\)' | cut -d';' -f2)
! [ -z "${_RESULT}" ] && echo "INFO#UPTIME:${_RESULT}" || echo "FAIL" ! [ -z "${_RESULT}" ] && echo "INFO#UPTIME:${_RESULT}" || echo "FAIL"
} }

View File

@@ -1,26 +1,51 @@
#!/bin/bash #!/bin/bash
SERVER="${1:?"FQDN of server missing"}" _REMOTE_HOST="${1:?"FQDN of server missing"}"
_REMOTE_PORT="${2:-"22"}"
_REMOTE_USER="monitoring"
_SOCKET='~/.ssh/%r@%h:%p'
function testSpace(){ function checkOrStartSSHMaster() {
local _RESULT=$(/sbin/zpool list -H -o capacity,name | /usr/bin/sort) timeout --preserve-status 1 "ssh -O check -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST}" &> /dev/null \
local _SPACE_USED=$(echo "${_RESULT}" | /usr/bin/tail -n 1 | /usr/bin/cut -f1) && echo "master checked" \
local _POOL=$(echo "${_RESULT}" | /usr/bin/tail -n 1 | /usr/bin/cut -f2) && return 0
[ -z "${_SPACE_USED}" ] \ ssh -O stop -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST} &> /dev/null
&& echo "FAIL#NO value" \ ssh -o ControlMaster=auto \
&& return 0 -o ControlPath=${_SOCKET} \
-o ControlPersist=65 \
-p ${_REMOTE_PORT} \
-f ${_REMOTE_USER}@${_REMOTE_HOST} exit &> /dev/null \
&& return 0
[ "${1:?"Missing OK_THRESHOLD"}" -ge "${_SPACE_USED%\%*}" ] \ echo "Fail: checkOrStartMaster()"
&& echo "OK#${_SPACE_USED} used ${_POOL}." \ return 1
&& return 0
[ "${2:?"Missing INFO_THRESHOLD"}" -ge "${_SPACE_USED%\%*}" ] \
&& echo "INFO#${_SPACE_USED} already used ${_POOL}." \
&& return 0
echo "FAIL#${_SPACE_USED} used ${_POOL}!"
return 0
} }
testSpace 80 90 function testSpace(){
checkOrStartSSHMaster \
|| return 1
local _RESULT="$(ssh -S ${_SOCKET} -p ${_REMOTE_PORT} ${_REMOTE_USER}@${_REMOTE_HOST} 'zpool list -H -o capacity,name')"
local _SPACE_USED=$(echo "${_RESULT}" | /usr/bin/tail -n 1 | /usr/bin/cut -f1)
local _POOL=$(echo "${_RESULT}" | /usr/bin/tail -n 1 | /usr/bin/cut -f2)
[ -z "${_SPACE_USED}" ] \
&& echo "FAIL#NO value" \
&& return 0
[ "${1:?"Missing OK_THRESHOLD"}" -ge "${_SPACE_USED%\%*}" ] \
&& echo "OK#${_SPACE_USED} used ${_POOL}." \
&& return 0
[ "${2:?"Missing INFO_THRESHOLD"}" -ge "${_SPACE_USED%\%*}" ] \
&& echo "INFO#${_SPACE_USED} already used ${_POOL}." \
&& return 0
echo "FAIL#${_SPACE_USED} used ${_POOL}!"
return 0
}
testSpace 80 90 && exit 0
exit 1