#!/bin/bash

# Configuración de rutas locales
ORIGEN="/home/lugammcom/public_html"
DESTINO="/home/lugammcom/copiasdeseguridad"
mkdir -p "$DESTINO"

FECHA=$(date +"%Y%m%d_%H%M%S")
ZIP_FILE="$DESTINO/public_html_$FECHA.zip"

# Configuración del servidor remoto SFTP
SFTP_USER="copias_carrera"
SFTP_HOST="154.53.45.12"
SFTP_PORT="22"
SFTP_REMOTE_DIR="/copiasdelcodigo/"
SFTP_KEY="/root/.ssh/id_backups_copias_carrera"

# 1. Empaquetar archivos fuente excluyendo librerías, vendor, includes, Proceso_compra 2/copy, control/assets, control/jpgraph y temporales
find "$ORIGEN" \( -name ".history" -o -name "vendor" -o -name "librerias" -o -name "includes" -o -iname "Proceso_compra 2" -o -iname "Proceso_compra copy" -o -path "*/control/assets" -o -path "*/control/jpgraph-4.0.2" \) -prune -o -type f \( -name "*.html" -o -name "*.php" -o -name "*.js" -o -name "*.css" \) ! -path "*/librerias/*" ! -path "*/vendor/*" ! -path "*/.history/*" ! -path "*/includes/*" ! -path "*[Pp]roceso_compra 2/*" ! -path "*[Pp]roceso_compra copy/*" ! -path "*/control/assets/*" ! -path "*/control/jpgraph-4.0.2/*" -print | zip -@ "$ZIP_FILE"

# 2. Limpieza de copias locales de más de 7 días
find "$DESTINO" -type f -name "public_html_*.zip" -mtime +7 -exec rm -f {} \;

# 3. Enviar copia comprimida al servidor remoto mediante SFTP con la llave SSH
SFTP_BATCH=$(mktemp)
cat <<EOF > "$SFTP_BATCH"
put "$ZIP_FILE" "$SFTP_REMOTE_DIR"
bye
EOF

sftp -i "$SFTP_KEY" -o StrictHostKeyChecking=no -P "$SFTP_PORT" -b "$SFTP_BATCH" "${SFTP_USER}@${SFTP_HOST}"
rm -f "$SFTP_BATCH"

exit 0
