diff --git a/monitoring/check_minetestchaprilorg_updateGames b/monitoring/check_minetestchaprilorg_updateGames new file mode 100755 index 0000000..b56cbf2 --- /dev/null +++ b/monitoring/check_minetestchaprilorg_updateGames @@ -0,0 +1,49 @@ + +#!/bin/bash +# +# Nagios plugin to check paste version +# +# Author : Obitanz +# 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 + diff --git a/monitoring/check_minetestchaprilorg_updateMods b/monitoring/check_minetestchaprilorg_updateMods new file mode 100755 index 0000000..4a63e6e --- /dev/null +++ b/monitoring/check_minetestchaprilorg_updateMods @@ -0,0 +1,55 @@ + +#!/bin/bash +# +# Nagios plugin to check paste version +# +# Author : Obitanz +# 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 +