#!/bin/bash BASE_DIR="/var/www/html" ORIGEM_UPDATE="$BASE_DIR/vvs/_update" # Interrompe o script caso ocorra um erro inesperado. set -u if [ ! -d "$ORIGEM_UPDATE" ]; then echo "ERRO: A pasta de origem não existe:" echo "$ORIGEM_UPDATE" exit 1 fi echo "Iniciando atualização dos sistemas..." echo for SISTEMA_DIR in "$BASE_DIR"/*; do # Ignora arquivos e considera somente diretórios. [ -d "$SISTEMA_DIR" ] || continue SISTEMA=$(basename "$SISTEMA_DIR") # Pastas que não devem ser atualizadas. case "$SISTEMA" in "vvs"|"sistema_beta"|"sistema_alfa") echo "IGNORADO: $SISTEMA" continue ;; esac UPDATE_ATUAL="$SISTEMA_DIR/_update" UPDATE_BKP="$SISTEMA_DIR/_update-bkp" echo "Processando: $SISTEMA" # Só continua se o sistema já possuir uma pasta _update. if [ ! -d "$UPDATE_ATUAL" ]; then echo " AVISO: pasta _update não encontrada. Sistema ignorado." echo continue fi # Preserva um eventual backup anterior. if [ -e "$UPDATE_BKP" ]; then DATA_HORA=$(date +"%Y%m%d_%H%M%S") BACKUP_ANTIGO="${UPDATE_BKP}_${DATA_HORA}" echo " Backup anterior encontrado." echo " Renomeando para: $(basename "$BACKUP_ANTIGO")" mv "$UPDATE_BKP" "$BACKUP_ANTIGO" if [ $? -ne 0 ]; then echo " ERRO: não foi possível preservar o backup anterior." echo continue fi fi # Renomeia a pasta _update atual para _update-bkp. echo " Criando backup da pasta _update..." mv "$UPDATE_ATUAL" "$UPDATE_BKP" if [ $? -ne 0 ]; then echo " ERRO: não foi possível renomear _update para _update-bkp." echo continue fi # Copia a pasta _update do VVS. echo " Copiando a nova pasta _update..." cp -a "$ORIGEM_UPDATE" "$SISTEMA_DIR/" if [ $? -ne 0 ]; then echo " ERRO: falha ao copiar a nova pasta _update." echo " Restaurando a pasta anterior..." rm -rf "$UPDATE_ATUAL" mv "$UPDATE_BKP" "$UPDATE_ATUAL" echo continue fi # Restaura o arquivo de versão específico do sistema. VERSAO_BKP="$UPDATE_BKP/versaoAtual.bkp" VERSAO_DESTINO="$UPDATE_ATUAL/versaoAtual.php" if [ -f "$VERSAO_BKP" ]; then echo " Restaurando versaoAtual.php..." cp -a "$VERSAO_BKP" "$VERSAO_DESTINO" if [ $? -ne 0 ]; then echo " AVISO: não foi possível copiar versaoAtual.bkp." fi else echo " AVISO: arquivo versaoAtual.bkp não encontrado em:" echo " $VERSAO_BKP" fi # Mantém o mesmo proprietário da pasta do sistema. PROPRIETARIO=$(stat -c '%U:%G' "$SISTEMA_DIR") chown -R "$PROPRIETARIO" "$UPDATE_ATUAL" echo " CONCLUÍDO: $SISTEMA" echo done echo "Atualização finalizada."