"test sys_refresh_ref_cron.sh"

This commit is contained in:
Doug Le Tough 2017-07-25 13:23:39 +02:00
parent b456a24eaf
commit 80f1253005
1 changed files with 27 additions and 21 deletions

View File

@ -23,6 +23,7 @@
# Ce script n'accepte *aucune* option # Ce script n'accepte *aucune* option
# #
# @OPT: f:force:force:1/1:false::: # @OPT: f:force:force:1/1:false:::
# @OPT: f:show-only:show-only:1/1:false:::
# #
#------------------------------------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------------------------------------
# Liste des erreurs: # Liste des erreurs:
@ -68,6 +69,9 @@
## Lorsqu'un cron job est supprimé, forcer une régénération complète des entrées de la base est ## Lorsqu'un cron job est supprimé, forcer une régénération complète des entrées de la base est
## donc nécessaire (sys_refresh_ref_cron.sh -force true) ## donc nécessaire (sys_refresh_ref_cron.sh -force true)
## ##
## L'option show-only permet de lister les cronjobs installés sur les VM sans les enregistrer
## dans la base de données.
##
## Les informations de connexion à la base de données doivent être stockées dans ## Les informations de connexion à la base de données doivent être stockées dans
## le fichier PGPASSFILE sur sousetsuken au format suivant: ## le fichier PGPASSFILE sur sousetsuken au format suivant:
## ##
@ -176,27 +180,29 @@ function refresh_cronjobs
COLOR="vert" COLOR="vert"
fi fi
fct_message ${MESSAGE} -color ${COLOR} fct_message ${MESSAGE} -color ${COLOR}
if [ ${#CRONJOB} -gt 0 ]; then if [ "${show-only}" == "false" ]; then
fct_message " Checking database:" if [ ${#CRONJOB} -gt 0 ]; then
MINUTES=$(echo ${CRONJOB} | cut -d' ' -f1) fct_message " Checking database:"
HOURS=$(echo ${CRONJOB} | cut -d' ' -f2) MINUTES=$(echo ${CRONJOB} | cut -d' ' -f1)
DAYS=$(echo ${CRONJOB} | cut -d' ' -f3) HOURS=$(echo ${CRONJOB} | cut -d' ' -f2)
MONTHS=$(echo ${CRONJOB} | cut -d' ' -f4) DAYS=$(echo ${CRONJOB} | cut -d' ' -f3)
DAYSOFWEEK=$(echo ${CRONJOB} | cut -d' ' -f5) MONTHS=$(echo ${CRONJOB} | cut -d' ' -f4)
COMMAND=$(echo ${CRONJOB} | cut -d' ' -f6-) DAYSOFWEEK=$(echo ${CRONJOB} | cut -d' ' -f5)
REQUEST_ID_PARAMS="host='${VM}' and s_user='${TETALAB_USER}' and minutes='${MINUTES}' and hours='${HOURS}' COMMAND=$(echo ${CRONJOB} | cut -d' ' -f6-)
and days='${DAYS}' and months='${MONTHS}' and daysofweek='${DAYSOFWEEK}' and command='${COMMAND}'" REQUEST_ID_PARAMS="host='${VM}' and s_user='${TETALAB_USER}' and minutes='${MINUTES}' and hours='${HOURS}'
RESULT=$(psql -q -t -h ${DB_HOST} -U ${DB_USER} -d ${DB_DATABASE} -c "select ID from and days='${DAYS}' and months='${MONTHS}' and daysofweek='${DAYSOFWEEK}' and command='${COMMAND}'"
ref_cron where ${REQUEST_ID_PARAMS};") RESULT=$(psql -q -t -h ${DB_HOST} -U ${DB_USER} -d ${DB_DATABASE} -c "select ID from
if [ ${#RESULT} -eq 0 ]; then ref_cron where ${REQUEST_ID_PARAMS};")
fct_message " -> Cronjob not in database, inserting..." if [ ${#RESULT} -eq 0 ]; then
REQUEST_INSERT_PARAMS="'${VM}', '${TETALAB_USER}', '${MINUTES}', fct_message " -> Cronjob not in database, inserting..."
'${HOURS}', '${DAYS}', '${MONTHS}', '${DAYSOFWEEK}', '${COMMAND}'" REQUEST_INSERT_PARAMS="'${VM}', '${TETALAB_USER}', '${MINUTES}',
psql -q -t -h ${DB_HOST} -U ${DB_USER} -d ${DB_DATABASE} -c "insert into ref_cron '${HOURS}', '${DAYS}', '${MONTHS}', '${DAYSOFWEEK}', '${COMMAND}'"
(\"host\", \"s_user\", \"minutes\", \"hours\", \"days\", \"months\", \"daysofweek\", \"command\") psql -q -t -h ${DB_HOST} -U ${DB_USER} -d ${DB_DATABASE} -c "insert into ref_cron
values (${REQUEST_INSERT_PARAMS});" (\"host\", \"s_user\", \"minutes\", \"hours\", \"days\", \"months\", \"daysofweek\", \"command\")
else values (${REQUEST_INSERT_PARAMS});"
fct_message " -> Cronjob already in database" else
fct_message " -> Cronjob already in database"
fi
fi fi
fi fi
done done