Add cronjob to check client status
parent
6a24fa1017
commit
8d61a564a4
|
@ -4,8 +4,30 @@ set -e
|
|||
set -x
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
restore_config_if_modified() {
|
||||
local new="$1"
|
||||
local backup="$1.bak"
|
||||
|
||||
if [ -f "$backup" ]; then
|
||||
if ! cmp -s "$new" "$backup"; then
|
||||
echo ">>> Archivo modificado por el usuario detectado en $new"
|
||||
echo " - Guardando archivo nuevo como ${new}.new"
|
||||
mv -f "$new" "${new}.new"
|
||||
echo " - Restaurando archivo anterior desde backup"
|
||||
mv -f "$backup" "$new"
|
||||
else
|
||||
echo ">>> El archivo $new no ha cambiado desde la última versión, eliminando backup"
|
||||
rm -f "$backup"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
USER="opengnsys"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Detectar si es una instalación nueva o una actualización
|
||||
if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
||||
# Detectar IP de la interfaz de red asociad a la ruta por defecto.
|
||||
|
@ -90,29 +112,48 @@ if [ "$1" = "configure" ] && [ -z "$2" ]; then
|
|||
|
||||
echo ">>> Usuario administrador $ADMIN_USER creado."
|
||||
fi
|
||||
|
||||
# Install crontab
|
||||
echo ">>> Configurando cron para comprobar disponibilidad de clientes"
|
||||
cp /opt/opengnsys/ogcore/etc/cron.d/opengnsys-check-clients /etc/cron.d/opengnsys-check-clients
|
||||
chmod 644 /etc/cron.d/opengnsys-check-clients
|
||||
chown root:root /etc/cron.d/opengnsys-check-clients
|
||||
|
||||
elif [ "$1" = "configure" ] && [ -n "$2" ]; then
|
||||
echo ">>> Actualización detectada desde la versión $2"
|
||||
|
||||
cd /opt/opengnsys/ogcore/api
|
||||
# Restaurar archivos de configuración si han sido modificados
|
||||
restore_config_if_modified "/opt/opengnsys/ogcore/etc/nginx/sites-available/ogcore.conf"
|
||||
restore_config_if_modified "/opt/opengnsys/ogcore/etc/nginx/sites-available/mercure.conf"
|
||||
restore_config_if_modified "/opt/opengnsys/ogcore/etc/php/8.3/fpm/pool.d/ogcore-fpm.conf"
|
||||
restore_config_if_modified "/opt/opengnsys/ogcore/etc/systemd/system/og-mercure.service"
|
||||
restore_config_if_modified "/opt/opengnsys/ogcore/api/env.json"
|
||||
|
||||
cd /opt/opengnsys/ogcore/api
|
||||
echo ">>> Aplicando migraciones de base de datos"
|
||||
php bin/console doctrine:migrations:migrate --no-interaction
|
||||
echo ">>> Configurando servidor web y servicios"
|
||||
ln -s /opt/opengnsys/ogcore/etc/nginx/sites-available/ogcore.conf /etc/nginx/sites-enabled/ogcore.conf
|
||||
ln -s /opt/opengnsys/ogcore/etc/php/8.3/fpm/pool.d/ogcore-fpm.conf /etc/php/8.3/fpm/pool.d/ogcore-fpm.conf
|
||||
ln -s /opt/opengnsys/ogcore/etc/systemd/system/og-mercure.service /etc/systemd/system/og-mercure.service
|
||||
[ ! -L /etc/nginx/sites-enabled/ogcore.conf ] && ln -s /opt/opengnsys/ogcore/etc/nginx/sites-available/ogcore.conf /etc/nginx/sites-enabled/ogcore.conf
|
||||
[ ! -L /etc/php/8.3/fpm/pool.d/ogcore-fpm.conf ] && ln -s /opt/opengnsys/ogcore/etc/php/8.3/fpm/pool.d/ogcore-fpm.conf /etc/php/8.3/fpm/pool.d/ogcore-fpm.conf
|
||||
[ ! -L /etc/systemd/system/og-mercure.service ] && ln -s /opt/opengnsys/ogcore/etc/systemd/system/og-mercure.service /etc/systemd/system/og-mercure.service
|
||||
echo ">>> Configurando permisos de archivos"
|
||||
chown opengnsys:www-data /opt/opengnsys/
|
||||
chown -R opengnsys:www-data /opt/opengnsys/ogcore
|
||||
if [ ! -f /etc/cron.d/opengnsys-check-clients ]; then
|
||||
echo ">>> Configurando cron para comprobar disponibilidad de clientes"
|
||||
cp /opt/opengnsys/ogcore/etc/cron.d/opengnsys-check-clients /etc/cron.d/opengnsys-check-clients
|
||||
chmod 644 /etc/cron.d/opengnsys-check-clients
|
||||
chown root:root /etc/cron.d/opengnsys-check-clients
|
||||
else
|
||||
echo ">>> El archivo de cron ya existe, no se realizan cambios se ajustan permisos"
|
||||
chmod 644 /etc/cron.d/opengnsys-check-clients
|
||||
chown root:root /etc/cron.d/opengnsys-check-clients
|
||||
fi
|
||||
systemctl daemon-reload
|
||||
systemctl enable og-mercure
|
||||
systemctl restart og-mercure
|
||||
systemctl restart nginx
|
||||
systemctl restart php8.3-fpm
|
||||
fi
|
||||
|
||||
fi
|
||||
# Recargar systemd y reiniciar servicios en ambos casos
|
||||
|
||||
|
||||
|
|
|
@ -2,6 +2,19 @@
|
|||
|
||||
set -e
|
||||
|
||||
backup_file_if_exists() {
|
||||
local original="$1"
|
||||
local backup="$1.bak"
|
||||
|
||||
if [ -e "$original" ]; then
|
||||
echo " - Guardando backup de $original en $backup"
|
||||
cp -a "$original" "$backup"
|
||||
fi
|
||||
}
|
||||
|
||||
CONFIG_FILE="/opt/opengnsys/ogcore/api/env.json"
|
||||
BACKUP_FILE="/opt/opengnsys/ogcore/api/env.json.bak"
|
||||
|
||||
# Asegurarse de que el usuario exista
|
||||
USER="opengnsys"
|
||||
HOME_DIR="/opt/opengnsys"
|
||||
|
@ -12,4 +25,18 @@ else
|
|||
useradd -m -d "$HOME_DIR" -s /bin/bash "$USER"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
CONFIG_FILE="/opt/opengnsys/ogcore/api/env.json"
|
||||
BACKUP_FILE="/opt/opengnsys/ogcore/api/env.json.bak"
|
||||
|
||||
# Solo hacemos backup si el archivo existe y es una actualización (posición 1 = upgrade)
|
||||
if [ "$1" = "upgrade" ]; then
|
||||
echo ">>> Backup de archivos de configuración reales en /opt/opengnsys"
|
||||
backup_file_if_exists "/opt/opengnsys/ogcore/etc/nginx/sites-available/ogcore.conf"
|
||||
backup_file_if_exists "/opt/opengnsys/ogcore/etc/nginx/sites-available/mercure.conf"
|
||||
backup_file_if_exists "/opt/opengnsys/ogcore/etc/php/8.3/fpm/pool.d/ogcore-fpm.conf"
|
||||
backup_file_if_exists "/opt/opengnsys/ogcore/etc/systemd/system/og-mercure.service"
|
||||
backup_file_if_exists "/opt/opengnsys/ogcore/api/env.json"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
*/5 * * * * opengnsys php -d memory_limit=512M /opt/opengnsys/ogcore/api/bin/console opengnsys:check-client-availability >> /opt/opengnsys/ogcore/api/var/log/cron.log 2>&1
|
Loading…
Reference in New Issue