Mise à jour des scripts
This commit is contained in:
parent
c2ab3529c3
commit
065626d815
|
@ -16,13 +16,13 @@ Un script `alerts_switch` s'occupera de gérer le fichier temporaire.
|
||||||
# /usr/share/script/alerts_switch disable tomcat
|
# /usr/share/script/alerts_switch disable tomcat
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Cette action va créer un fichier temporaire `/tmp/tomcat_alerts_disabled` et inscrire une entrée datée dans le fichier `/var/log/tomcat_alerts.log`.
|
Cette action va créer un fichier temporaire `/var/lib/misc/tomcat_alerts_disabled` et inscrire une entrée datée dans le fichier `/var/log/tomcat_alerts.log`.
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# /usr/share/script/alerts_switch enable tomcat
|
# /usr/share/script/alerts_switch enable tomcat
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Cette action va renommer le fichier en `/tmp/tomcat_alerts_enabled` s'il existe ou le créer (pour indiquer clairement qu'on a souhaité que les alertes soient activées).
|
Cette action va renommer le fichier en `/var/lib/misc/tomcat_alerts_enabled` s'il existe ou le créer (pour indiquer clairement qu'on a souhaité que les alertes soient activées).
|
||||||
|
|
||||||
NB : on ne se contente pas de supprimer le fichier "disabled" pour ne pas risquer de supprimer un fichier important qui serait là au préalable, portant par malchance le même nom.
|
NB : on ne se contente pas de supprimer le fichier "disabled" pour ne pas risquer de supprimer un fichier important qui serait là au préalable, portant par malchance le même nom.
|
||||||
|
|
||||||
|
@ -31,6 +31,11 @@ Détail du script `alerts_switch` :
|
||||||
~~~{.bash}
|
~~~{.bash}
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# https://forge.evolix.org/projects/evolix-private/repository
|
||||||
|
#
|
||||||
|
# You should not alter this file.
|
||||||
|
# If you need to, create and customize a copy.
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
readonly PROGNAME=$(basename $0)
|
readonly PROGNAME=$(basename $0)
|
||||||
|
@ -49,6 +54,7 @@ disable_alerts () {
|
||||||
mv "${enabled_file}" "${disabled_file}"
|
mv "${enabled_file}" "${disabled_file}"
|
||||||
else
|
else
|
||||||
touch "${disabled_file}"
|
touch "${disabled_file}"
|
||||||
|
chmod 0644 "${disabled_file}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,6 +66,7 @@ enable_alerts () {
|
||||||
mv "${disabled_file}" "${enabled_file}"
|
mv "${disabled_file}" "${enabled_file}"
|
||||||
else
|
else
|
||||||
touch "${enabled_file}"
|
touch "${enabled_file}"
|
||||||
|
chmod 0644 "${enabled_file}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,18 +75,21 @@ now () {
|
||||||
}
|
}
|
||||||
|
|
||||||
log_disable () {
|
log_disable () {
|
||||||
echo "$(now) - alerts disabled by $(logname)" >> $1
|
echo "$(now) - alerts disabled by $(logname || echo unknown)" >> $1
|
||||||
}
|
}
|
||||||
|
|
||||||
log_enable () {
|
log_enable () {
|
||||||
echo "$(now) - alerts enabled by $(logname)">> $1
|
echo "$(now) - alerts enabled by $(logname || echo unknown)" >> $1
|
||||||
}
|
}
|
||||||
|
|
||||||
main () {
|
main () {
|
||||||
local action=$1
|
local action=$1
|
||||||
local prefix=$2
|
local prefix=$2
|
||||||
|
|
||||||
local file_path="/tmp/${prefix}_alerts"
|
local base_dir="/var/lib/misc"
|
||||||
|
mkdir -p "${base_dir}"
|
||||||
|
|
||||||
|
local file_path="${base_dir}/${prefix}_alerts"
|
||||||
local log_file="/var/log/${prefix}_alerts.log"
|
local log_file="/var/log/${prefix}_alerts.log"
|
||||||
|
|
||||||
case "$action" in
|
case "$action" in
|
||||||
|
@ -127,25 +137,41 @@ Détail du script `alerts_wrapper` :
|
||||||
~~~{.bash}
|
~~~{.bash}
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
readonly check_file="/tmp/$1_alerts_disabled"
|
# https://forge.evolix.org/projects/evolix-private/repository
|
||||||
|
#
|
||||||
|
# You should not alter this file.
|
||||||
|
# If you need to, create and customize a copy.
|
||||||
|
|
||||||
|
readonly check_name="${1}"
|
||||||
|
readonly check_file="/var/lib/misc/${check_name}_alerts_disabled"
|
||||||
|
readonly check_stdout=$(mktemp --tmpdir=/tmp "${check_name}_stdout.XXXX")
|
||||||
|
|
||||||
|
trap "rm ${check_stdout}" EXIT
|
||||||
|
|
||||||
shift
|
shift
|
||||||
|
|
||||||
readonly check_stdout=$($@)
|
readonly check_command="$@"
|
||||||
|
|
||||||
|
$check_command > $check_stdout
|
||||||
readonly check_rc=$?
|
readonly check_rc=$?
|
||||||
|
|
||||||
if [ -e "${check_file}" ]; then
|
delay=0
|
||||||
local last_change=$(stat -c %Z "${check_file}")
|
|
||||||
local limit=$(date --date '24 hours ago' +'%s')
|
|
||||||
|
|
||||||
if [ ${last_change} -le ${limit} ]; then
|
if [ -e "${check_file}" ]; then
|
||||||
rm "${check_file}"
|
readonly last_change=$(stat -c %Z "${check_file}")
|
||||||
|
readonly limit=$(date --date '24 hours ago' +'%s')
|
||||||
|
|
||||||
|
delay=$((${last_change} - ${limit}))
|
||||||
|
|
||||||
|
if [ "${delay}" -le "0" ]; then
|
||||||
|
sudo /usr/share/scripts/alerts_switch enable ${check_name}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e "${check_file}" ]; then
|
if [ -e "${check_file}" ]; then
|
||||||
local formatted_last_change=$(date --date "@$(stat -c %Z "${check_file}")" +'%c')
|
readonly formatted_last_change=$(date --date "@$(stat -c %Z "${check_file}")" +'%c')
|
||||||
|
|
||||||
echo "ALERTS DISABLED (since ${formatted_last_change}) - ${check_stdout}"
|
echo "ALERTS DISABLED for ${check_name} (since ${formatted_last_change}, delay: ${delay} sec) - ${check_stdout}"
|
||||||
if [ ${check_rc} = 0 ]; then
|
if [ ${check_rc} = 0 ]; then
|
||||||
# Nagios OK
|
# Nagios OK
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -154,14 +180,14 @@ if [ -e "${check_file}" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo ${check_stdout}
|
cat ${check_stdout}
|
||||||
exit ${check_rc}
|
exit ${check_rc}
|
||||||
fi
|
fi
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Le wrapper exécute le check et en met de côté la sortie standard et le code de sortie.
|
Le wrapper exécute le check et en met de côté la sortie standard et le code de sortie.
|
||||||
|
|
||||||
Il cherche ensuite le fichier `/var/tmp/tomcat_alerts_disabled`.
|
Il cherche ensuite le fichier `/var/lib/misc/tomcat_alerts_disabled`.
|
||||||
|
|
||||||
S'il est présent et vieux de plus de 24h, il sera détruit pour ne pas risquer d'oubli.
|
S'il est présent et vieux de plus de 24h, il sera détruit pour ne pas risquer d'oubli.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue