193 lines
5.0 KiB
Bash
Executable File
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
|