HEX
Server: nginx/1.27.0
System: Linux ns31201788 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: www-data (33)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //tmp/backup.sh
#!/bin/bash

# CONFIG
MOUNT_DIR="/mnt/backup"
REMOTE="root@46.141.105.7:/media/root/6575a881-3a86-4c99-9b6d-1f8eb8b38ed1/Server2022"
PORT="2096"
EMAIL="report@navarrosistemi.it"
TMP_LOG="/tmp/backup_report.html"
DATA=$(date +%Y%m%d)
ICON_CHECK="โœ…"
ICON_FAIL="โŒ"

# Inizio HTML
echo "<html><body style='font-family: Arial'>" > "$TMP_LOG"
echo "<h2>๐Ÿ—‚๏ธ Report Backup $DATA</h2><ul>" >> "$TMP_LOG"

# Smonta solo se giร  montato
if mountpoint -q "$MOUNT_DIR"; then
    echo "<li>๐Ÿ”Œ Smontaggio vecchio SSHFS: $ICON_CHECK</li>" >> "$TMP_LOG"
    fusermount -u -z "$MOUNT_DIR" || umount -l "$MOUNT_DIR"
else
    echo "<li>๐Ÿ”Œ Nessun mount precedente da smontare</li>" >> "$TMP_LOG"
fi

# Mount SSHFS
if sshfs -p "$PORT" -o allow_other,default_permissions,nonempty "$REMOTE" "$MOUNT_DIR"; then
    echo "<li>๐Ÿ”— Montaggio SSHFS: $ICON_CHECK</li>" >> "$TMP_LOG"
else
    echo "<li>๐Ÿ”— Montaggio SSHFS: $ICON_FAIL</li>" >> "$TMP_LOG"
    echo "</ul><p>โŒ Backup interrotto.</p></body></html>" >> "$TMP_LOG"
    mail -a "Content-Type: text/html" -s "โŒ Backup Fallito" "$EMAIL" < "$TMP_LOG"
    exit 1
fi

# Lista cartelle da backuppare
declare -A BACKUP_LIST=(
  [airpro]="/var/www/airpro"
  [magobridge]="/var/www/magobridge"
  [lab2punto0]="/var/www/lab2punto0"
  [watchpassion]="/var/www/watchpassion"
  [ajlw]="/var/www/ajlw"
  [idelimpianti]="/var/www/idelimpianti"
  [lavorazionemarmi]="/var/www/lavorazionemarmi"
  [oroline]="/var/www/oroline"
  [orologipreziosi]="/var/www/orologipreziosi"
  [veronasociale]="/var/www/veronasociale"
  [navarrosistemi]="/home/navarrosistemi"
  [afadcavo]="/var/www/afadcavo"
  [afadcavo]="/var/www/acquaapendown"
  [crm01]="/var/www/crm01"
  [acetificio]="/var/www/acetificio"
  [magobridge]="/var/www/magobridge"
  [roncasposi]="/var/www/roncasposi"
  [idelimpiantisrl]="/var/www/idelimpiantisrl"
)

# Backup
for name in "${!BACKUP_LIST[@]}"; do
    src="${BACKUP_LIST[$name]}"
    dest="$MOUNT_DIR/${name}-${DATA}.zip"
    if zip -r "$dest" "$src" > /dev/null 2>&1; then
        echo "<li>๐Ÿ“ฆ Backup <b>$name</b>: $ICON_CHECK</li>" >> "$TMP_LOG"
    else
        echo "<li>๐Ÿ“ฆ Backup <b>$name</b>: $ICON_FAIL</li>" >> "$TMP_LOG"
    fi
done

# Pulizia vecchi backup
find "$MOUNT_DIR"/* -mtime +2 -exec rm -f {} \;
echo "<li>๐Ÿงน Pulizia vecchi file (>2 giorni): $ICON_CHECK</li>" >> "$TMP_LOG"

# Fine HTML
echo "</ul><p>๐Ÿ•“ Fine backup: $(date)</p></body></html>" >> "$TMP_LOG"

# Invia email con report
mail -a "Content-Type: text/html" -s "โœ… Report Backup $DATA" "$EMAIL" < "$TMP_LOG"