LeCoffre Deployment d8d4530d2d auto_clea
2025-09-25 21:26:28 +00:00

193 lines
5.0 KiB
Bash
Executable File

#!/bin/bash
# Script de maintenance LeCoffre Node
# Nettoyage, optimisation et vérifications de santé
set -e
# Couleurs pour l'affichage
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
# Fonction pour afficher un message avec timestamp
print_message() {
echo -e "${BLUE}[$(date '+%H:%M:%S')]${NC} $1"
}
# Fonction pour afficher le menu
show_menu() {
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE} LeCoffre Node - Maintenance Menu${NC}"
echo -e "${BLUE}========================================${NC}"
echo
echo -e "${CYAN}1.${NC} Validation complète du déploiement"
echo -e "${CYAN}2.${NC} Sauvegarde des données"
echo -e "${CYAN}3.${NC} Nettoyage des logs anciens"
echo -e "${CYAN}4.${NC} Nettoyage des images Docker inutilisées"
echo -e "${CYAN}5.${NC} Vérification de l'espace disque"
echo -e "${CYAN}6.${NC} Redémarrage des services"
echo -e "${CYAN}7.${NC} Mise à jour des images"
echo -e "${CYAN}8.${NC} Collecte des logs"
echo -e "${CYAN}9.${NC} Vérification de la santé des services"
echo -e "${CYAN}10.${NC} Maintenance BlindBit Oracle"
echo -e "${CYAN}0.${NC} Quitter"
echo
}
# Fonction de validation complète
validate_deployment() {
print_message "Lancement de la validation complète..."
./scripts/validate-deployment.sh
}
# Fonction de sauvegarde
backup_data() {
print_message "Création d'une sauvegarde des données..."
./scripts/backup-data.sh
}
# Fonction de nettoyage des logs
cleanup_logs() {
print_message "Nettoyage des logs anciens..."
# Supprimer les logs de plus de 30 jours
find ./logs -name "*.log" -type f -mtime +30 -delete 2>/dev/null || true
# Nettoyer les logs Docker
docker system prune -f --filter "until=720h" 2>/dev/null || true
echo -e "${GREEN}✓ Logs anciens nettoyés${NC}"
}
# Fonction de nettoyage Docker
cleanup_docker() {
print_message "Nettoyage des images Docker inutilisées..."
# Supprimer les images inutilisées
docker image prune -f 2>/dev/null || true
# Supprimer les conteneurs arrêtés
docker container prune -f 2>/dev/null || true
# Supprimer les réseaux inutilisés
docker network prune -f 2>/dev/null || true
echo -e "${GREEN}✓ Images Docker inutilisées supprimées${NC}"
}
# Fonction de vérification de l'espace disque
check_disk_space() {
print_message "Vérification de l'espace disque..."
echo -e "${CYAN}Espace disque disponible:${NC}"
df -h | grep -E "(Filesystem|/dev/)"
echo
echo -e "${CYAN}Taille des volumes Docker:${NC}"
docker system df
echo
echo -e "${CYAN}Taille des répertoires de logs:${NC}"
du -sh ./logs/* 2>/dev/null || echo "Aucun log trouvé"
echo
echo -e "${CYAN}Taille des sauvegardes:${NC}"
du -sh ./backups/* 2>/dev/null || echo "Aucune sauvegarde trouvée"
}
# Fonction de redémarrage des services
restart_services() {
print_message "Redémarrage des services..."
echo -e "${YELLOW}Arrêt des services...${NC}"
docker compose --env-file /home/debian/4NK_env/.env.master down
echo -e "${YELLOW}Démarrage des services...${NC}"
./scripts/start.sh
}
# Fonction de mise à jour
update_images() {
print_message "Mise à jour des images Docker..."
./scripts/update-images.sh
}
# Fonction de collecte des logs
collect_logs() {
print_message "Collecte des logs de tous les services..."
./scripts/collect-logs.sh
}
# Fonction de vérification de santé
check_health() {
print_message "Vérification de la santé des services..."
echo -e "${CYAN}Statut des conteneurs:${NC}"
docker compose --env-file /home/debian/4NK_env/.env.master ps
echo
echo -e "${CYAN}Utilisation des ressources:${NC}"
docker stats --no-stream --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}\t{{.BlockIO}}"
}
# Fonction de maintenance BlindBit Oracle
blindbit_maintenance() {
print_message "Lancement de la maintenance BlindBit Oracle..."
./scripts/lecoffre_node/blindbit-maintenance.sh
}
# Boucle principale
while true; do
show_menu
echo -n -e "${YELLOW}Choisissez une option (0-10): ${NC}"
read -r choice
case $choice in
1)
validate_deployment
;;
2)
backup_data
;;
3)
cleanup_logs
;;
4)
cleanup_docker
;;
5)
check_disk_space
;;
6)
restart_services
;;
7)
update_images
;;
8)
collect_logs
;;
9)
check_health
;;
0)
echo -e "${GREEN}Au revoir!${NC}"
exit 0
;;
10)
blindbit_maintenance
;;
*)
echo -e "${RED}Option invalide. Veuillez choisir entre 0 et 10.${NC}"
;;
esac
echo
echo -e "${YELLOW}Appuyez sur Entrée pour continuer...${NC}"
read -r
clear
done