add nagios sensor to check if games and mods are up to date
This commit is contained in:
parent
e3bb3df0ae
commit
21bac5a139
49
monitoring/check_minetestchaprilorg_updateGames
Executable file
49
monitoring/check_minetestchaprilorg_updateGames
Executable file
@ -0,0 +1,49 @@
|
||||
|
||||
#!/bin/bash
|
||||
#
|
||||
# Nagios plugin to check paste version
|
||||
#
|
||||
# Author : Obitanz <hb+chapril@unenieme.eu>
|
||||
# Date : 17 Jul 2023
|
||||
#
|
||||
|
||||
OK=0
|
||||
WARNING=1
|
||||
CRITICAL=2
|
||||
UNKNOWN=3
|
||||
|
||||
function usage() {
|
||||
echo "Usage : $0"
|
||||
echo "This script check if minetest games are up to date"
|
||||
result=${UNKNOWN}
|
||||
}
|
||||
|
||||
|
||||
if [ "$#" -ne 0 ]; then
|
||||
usage
|
||||
else
|
||||
game_outdated=0
|
||||
for game in $(ls -1d /srv/minetest.chapril.org/home/.minetest/games/*);
|
||||
do
|
||||
shortname=$(echo ${game} | cut -d "/" -f 7)
|
||||
lastVersion=$(cd ${game} && git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags origin '*.*.*' | tail --lines=1 | cut --delimiter='/' --fields=3)
|
||||
currentVersion=$(cd ${game} && git describe --tags --abbrev=0)
|
||||
|
||||
if [ "${currentVersion}" = "${lastVersion}" ]; then
|
||||
result_msg=${result_msg}"\n${shortname} is up to date"
|
||||
else
|
||||
result_msg=${result_msg}"\nnew version available for ${shortname}, current is ${currentVersion}, last is ${lastVersion}"
|
||||
game_outdated=1
|
||||
fi
|
||||
done
|
||||
if [ ${game_outdated} -eq 0 ]; then
|
||||
echo "OK - all games are up to date"
|
||||
result=${OK}
|
||||
else
|
||||
echo -e "WARNING - all games aren't up to date${result_msg}"
|
||||
result=${WARNING}
|
||||
fi
|
||||
fi
|
||||
|
||||
exit $result
|
||||
|
55
monitoring/check_minetestchaprilorg_updateMods
Executable file
55
monitoring/check_minetestchaprilorg_updateMods
Executable file
@ -0,0 +1,55 @@
|
||||
|
||||
#!/bin/bash
|
||||
#
|
||||
# Nagios plugin to check paste version
|
||||
#
|
||||
# Author : Obitanz <hb+chapril@unenieme.eu>
|
||||
# Date : 17 Jul 2023
|
||||
#
|
||||
|
||||
OK=0
|
||||
WARNING=1
|
||||
CRITICAL=2
|
||||
UNKNOWN=3
|
||||
|
||||
function usage() {
|
||||
echo "Usage : $0"
|
||||
echo "This script check if minetest mods are up to date"
|
||||
result=${UNKNOWN}
|
||||
}
|
||||
|
||||
# INFO
|
||||
# 3 mods actuels : filter, xban2, whitelist
|
||||
# les 2 premiers n'utilisent pas les tags ==> possible d'utiliser les commit pour déterminer si du nouveau
|
||||
# le 3e utilise les tags, ça semble se coller aux derniers commit
|
||||
# git rev-parse HEAD pour avoir le hash du dernier commit local
|
||||
# git ls-remote origin | head -1 | cut -d " " -f 1
|
||||
|
||||
if [ "$#" -ne 0 ]; then
|
||||
usage
|
||||
else
|
||||
mod_outdated=0
|
||||
for mod in $(ls -1d /srv/minetest.chapril.org/home/.minetest/mods/*);
|
||||
do
|
||||
shortname=$(echo ${mod} | cut -d "/" -f 7)
|
||||
lastCommit=$(cd ${mod} && git ls-remote origin | head -1 | cut -d " " -f 1)
|
||||
currentCommit=$(cd ${mod} && git rev-parse HEAD)
|
||||
|
||||
if [ "${currentVersion}" = "${lastVersion}" ]; then
|
||||
result_msg=${result_msg}"\n${shortname} is up to date"
|
||||
else
|
||||
result_msg=${result_msg}"\nnew version available for ${shortname}, current is ${currentVersion}, last is ${lastVersion}"
|
||||
mod_outdated=1
|
||||
fi
|
||||
done
|
||||
if [ ${mod_outdated} -eq 0 ]; then
|
||||
echo "OK - all mods are up to date"
|
||||
result=${OK}
|
||||
else
|
||||
echo -e "WARNING - all mods aren't up to date${result_msg}"
|
||||
result=${WARNING}
|
||||
fi
|
||||
fi
|
||||
|
||||
exit $result
|
||||
|
Loading…
Reference in New Issue
Block a user