78 lines
2.2 KiB
Bash
Executable File
78 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_VERSION="1.0"
|
|
|
|
# ================================================
|
|
# FACTUGES SYNC - Deploy cron jobs (MULTI COMPANY)
|
|
# -----------------------------------------------
|
|
# Este script:
|
|
# - Lee la lista de compañías desde companies.list
|
|
# - Genera automáticamente los CRON de cada compañía
|
|
# - Instala un CRON único con todas las compañías
|
|
# - Crea directorios de logs por compañía
|
|
# ================================================
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
COMPANIES_FILE="${SCRIPT_DIR}/companies.list"
|
|
|
|
if [[ ! -f "$COMPANIES_FILE" ]]; then
|
|
echo "❌ ERROR: No existe ${COMPANIES_FILE}"
|
|
exit 1
|
|
fi
|
|
|
|
CRON_FILE="/tmp/factuges-sync-cron-all.txt"
|
|
|
|
echo ""
|
|
echo "-------------------------------------------------------"
|
|
echo " FACTUGES SYNC - Deploy cron jobs (MULTI COMPANY) v${SCRIPT_VERSION}"
|
|
echo "-------------------------------------------------------"
|
|
echo ""
|
|
|
|
echo "📄 Generando CRON multi-compañía..."
|
|
echo "" > "$CRON_FILE"
|
|
|
|
while read -r COMPANY; do
|
|
[[ -z "$COMPANY" ]] && continue # saltar líneas vacías
|
|
[[ "$COMPANY" == \#* ]] && continue # saltar comentarios
|
|
|
|
LOG_DIR="/var/log/factuges-sync/${COMPANY}"
|
|
|
|
echo "→ Añadiendo compañía: ${COMPANY}"
|
|
echo " Logs en: ${LOG_DIR}"
|
|
|
|
# Crear directorio de logs por compañía
|
|
sudo mkdir -p "$LOG_DIR"
|
|
|
|
cat >> "$CRON_FILE" <<EOF
|
|
# ===== FACTUGES SYNC JOBS (${COMPANY}) =====
|
|
|
|
# Sincronización FactuGES (cada 5 min)
|
|
*/5 * * * * docker run --rm \
|
|
-e ENV=prod \
|
|
factuges-sync-factuges:${COMPANY}-latest \
|
|
>> ${LOG_DIR}/factuges.log 2>&1
|
|
|
|
# Sincronización Verifactu (cada 7 min)
|
|
*/7 * * * * docker run --rm \
|
|
-e ENV=prod \
|
|
factuges-sync-verifactu:${COMPANY}-latest \
|
|
>> ${LOG_DIR}/verifactu.log 2>&1
|
|
|
|
EOF
|
|
|
|
done < "$COMPANIES_FILE"
|
|
|
|
echo "📥 Instalando CRON final..."
|
|
sudo crontab "$CRON_FILE"
|
|
|
|
echo ""
|
|
echo "---------------------------------------------"
|
|
echo "🎯 CRON multi-compañía instalado correctamente"
|
|
echo "✔ companies.list leído desde: ${COMPANIES_FILE}"
|
|
echo "✔ Ver crontab: sudo crontab -l"
|
|
echo "✔ Logs: /var/log/factuges-sync/<company>/"
|
|
echo "🧩 Script version: ${SCRIPT_VERSION}"
|
|
echo "---------------------------------------------"
|
|
echo ""
|