improve Makefile and secure bash scripts

This commit is contained in:
BeauTroll
2025-12-15 11:35:24 +01:00
parent 2dc57afab4
commit 386f731c2b
5 changed files with 87 additions and 75 deletions

37
scripts/backup.sh Normal file → Executable file
View File

@@ -22,6 +22,7 @@ DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="nextcloud_backup_$DATE"
BACKUP_PATH="$BACKUP_DIR/$BACKUP_NAME"
MAINTENANCE_ENABLED=false
BACKUP_RETENTION_DAYS=7
# Fonction de nettoyage en cas d'erreur
cleanup() {
@@ -69,36 +70,32 @@ if ! docker-compose exec -T db sh -c "MYSQL_PWD=\"\$MYSQL_PASSWORD\" mysqldump \
\"\$MYSQL_DATABASE\" \
--single-transaction \
--quick \
--lock-tables=false" > "$BACKUP_PATH/database.sql"; then
--lock-tables=false" >"$BACKUP_PATH/database.sql"; then
echo "❌ Erreur lors du backup de la base de données"
exit 1
fi
# 3. Backup des fichiers de config
echo "⚙️ Backup de la configuration..."
tar -czf "$BACKUP_PATH/config.tar.gz" \
-C ./data/config .
docker-compose exec -T -u www-data nextcloud tar -czf - -C /var/www/html/config . > "$BACKUP_PATH/config.tar.gz"
# 4. Backup des données utilisateurs (optionnel, peut être énorme)
# 4. Backup des données utilisateurs (peut être volumineux)
echo "📁 Backup des données utilisateurs..."
# Pour un backup incrémental, utilisez rsync
rsync -a --info=progress2 \
./data/data/ \
"$BACKUP_PATH/data/" \
--exclude 'appdata_*/preview' \
--exclude '*/cache' \
--exclude '*/thumbnails'
# Utiliser tar avec compression et exclusions depuis le container
docker-compose exec -T -u www-data nextcloud tar -czf - \
-C /var/www/html/data \
--exclude='appdata_*/preview' \
--exclude='*/cache' \
--exclude='*/thumbnails' \
. > "$BACKUP_PATH/data.tar.gz"
# Ou pour un tar compressé (long):
# tar -czf "$BACKUP_PATH/data.tar.gz" \
# --exclude='appdata_*/preview' \
# -C ./data/data .
# 5. Backup des apps
# 5. Backup des apps personnalisées
echo "📦 Backup des apps personnalisées..."
if [ -d "./data/custom_apps" ]; then
tar -czf "$BACKUP_PATH/apps.tar.gz" \
-C ./data/custom_apps .
if docker-compose exec -T nextcloud [ -d /var/www/html/custom_apps ]; then
docker-compose exec -T -u www-data nextcloud tar -czf - \
-C /var/www/html/custom_apps . > "$BACKUP_PATH/apps.tar.gz"
else
echo " Pas d'apps personnalisées à sauvegarder"
fi
# 6. Désactiver le mode maintenance