Add rollback_last.sh (rollback manuel dernier backup)
This commit is contained in:
34
rollback_last.sh
Executable file
34
rollback_last.sh
Executable file
@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
APP_NAME="webval"
|
||||
DST_DIR="/var/www/mathematiques"
|
||||
BACKUP_ROOT="/var/backups/${APP_NAME}"
|
||||
|
||||
die() { echo "ERREUR: $*" >&2; exit 1; }
|
||||
|
||||
[[ -d "${DST_DIR}" ]] || die "Destination inexistante: ${DST_DIR}"
|
||||
[[ -d "${BACKUP_ROOT}" ]] || die "Aucun backup trouvé: ${BACKUP_ROOT}"
|
||||
|
||||
# Trouver le backup le plus récent (ordre lexicographique OK grâce au timestamp)
|
||||
LAST_BACKUP="$(ls -1d "${BACKUP_ROOT}"/prev_* 2>/dev/null | sort | tail -n 1 || true)"
|
||||
[[ -n "${LAST_BACKUP}" && -d "${LAST_BACKUP}" ]] || die "Aucun dossier prev_* valide dans ${BACKUP_ROOT}"
|
||||
|
||||
echo "=== ROLLBACK MANUEL (${APP_NAME}) ==="
|
||||
echo "Restore depuis : ${LAST_BACKUP}"
|
||||
echo "Vers : ${DST_DIR}"
|
||||
echo
|
||||
|
||||
read -r -p "Confirmer le rollback ? (oui/non) " ans
|
||||
[[ "${ans}" == "oui" ]] || { echo "Annulé."; exit 0; }
|
||||
|
||||
sudo rsync -a --delete "${LAST_BACKUP}/" "${DST_DIR}/"
|
||||
|
||||
# Reload services (sans faire échouer si un service n'existe pas)
|
||||
sudo systemctl reload php8.1-fpm >/dev/null 2>&1 || true
|
||||
sudo systemctl reload nginx >/dev/null 2>&1 || true
|
||||
|
||||
echo "OK: rollback terminé."
|
||||
echo "Logs utiles si besoin :"
|
||||
echo " sudo tail -n 80 /var/log/nginx/error.log"
|
||||
echo " sudo journalctl -u php8.1-fpm -n 80 --no-pager"
|
||||
Reference in New Issue
Block a user