120 lines
4.8 KiB
Bash
Executable File
120 lines
4.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script de collecte des logs BlindBit Oracle
|
|
# Collecte les logs Docker et les sauvegarde dans le répertoire centralisé
|
|
|
|
set -e
|
|
|
|
# Configuration
|
|
LOG_DIR="/home/debian/4NK_env/logs/blindbit"
|
|
CONTAINER_NAME="blindbit-oracle"
|
|
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
|
|
|
|
# Couleurs
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${BLUE}=== Collecte des logs BlindBit Oracle ===${NC}"
|
|
|
|
# Vérifier que le répertoire de logs existe
|
|
if [ ! -d "$LOG_DIR" ]; then
|
|
echo -e "${YELLOW}Création du répertoire de logs: $LOG_DIR${NC}"
|
|
mkdir -p "$LOG_DIR"
|
|
fi
|
|
|
|
# Vérifier que le conteneur existe
|
|
if ! docker ps -a --format '{{.Names}}' | grep -q "$CONTAINER_NAME"; then
|
|
echo -e "${RED}Erreur: Le conteneur $CONTAINER_NAME n'existe pas${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# Collecter les logs Docker
|
|
echo -e "${BLUE}Collecte des logs Docker...${NC}"
|
|
docker logs "$CONTAINER_NAME" > "$LOG_DIR/blindbit_${TIMESTAMP}.log" 2>&1
|
|
|
|
# Collecter les logs de configuration
|
|
echo -e "${BLUE}Collecte des logs de configuration...${NC}"
|
|
docker exec "$CONTAINER_NAME" cat /root/.blindbit-oracle/blindbit.toml > "$LOG_DIR/config_${TIMESTAMP}.toml" 2>/dev/null || echo "Configuration non accessible"
|
|
|
|
# Collecter les informations système
|
|
echo -e "${BLUE}Collecte des informations système...${NC}"
|
|
{
|
|
echo "=== Informations système BlindBit Oracle ==="
|
|
echo "Date: $(date)"
|
|
echo "Conteneur: $CONTAINER_NAME"
|
|
echo "Image: $(docker inspect --format='{{.Config.Image}}' "$CONTAINER_NAME")"
|
|
echo "Statut: $(docker inspect --format='{{.State.Status}}' "$CONTAINER_NAME")"
|
|
echo "Ports: $(docker inspect --format='{{range .NetworkSettings.Ports}}{{.}} {{end}}' "$CONTAINER_NAME")"
|
|
echo "Réseau: $(docker inspect --format='{{range .NetworkSettings.Networks}}{{.NetworkID}} {{end}}' "$CONTAINER_NAME")"
|
|
echo ""
|
|
echo "=== Ports d'écoute ==="
|
|
docker exec "$CONTAINER_NAME" netstat -tlnp 2>/dev/null || echo "netstat non disponible"
|
|
echo ""
|
|
echo "=== Processus en cours ==="
|
|
docker exec "$CONTAINER_NAME" ps aux 2>/dev/null || echo "ps non disponible"
|
|
echo ""
|
|
echo "=== Utilisation disque ==="
|
|
docker exec "$CONTAINER_NAME" df -h 2>/dev/null || echo "df non disponible"
|
|
} > "$LOG_DIR/system_info_${TIMESTAMP}.txt"
|
|
|
|
# Collecter les logs de synchronisation
|
|
echo -e "${BLUE}Collecte des logs de synchronisation...${NC}"
|
|
docker logs "$CONTAINER_NAME" 2>&1 | grep -E "(sync|Sync|block|Block|tweak|Tweak)" > "$LOG_DIR/sync_${TIMESTAMP}.log" || echo "Aucun log de synchronisation trouvé"
|
|
|
|
# Collecter les logs d'erreurs
|
|
echo -e "${BLUE}Collecte des logs d'erreurs...${NC}"
|
|
docker logs "$CONTAINER_NAME" 2>&1 | grep -iE "(error|Error|ERROR|warning|Warning|WARNING)" > "$LOG_DIR/errors_${TIMESTAMP}.log" || echo "Aucune erreur trouvée"
|
|
|
|
# Collecter les logs d'API
|
|
echo -e "${BLUE}Collecte des logs d'API...${NC}"
|
|
docker logs "$CONTAINER_NAME" 2>&1 | grep -E "(GET|POST|PUT|DELETE|HTTP)" > "$LOG_DIR/api_${TIMESTAMP}.log" || echo "Aucun log d'API trouvé"
|
|
|
|
# Test de l'API
|
|
echo -e "${BLUE}Test de l'API...${NC}"
|
|
{
|
|
echo "=== Test API BlindBit Oracle ==="
|
|
echo "Date: $(date)"
|
|
echo ""
|
|
echo "Test endpoint /tweaks/1:"
|
|
curl -s -w "HTTP Code: %{http_code}\nTime: %{time_total}s\n" http://localhost:8000/tweaks/1 || echo "API non accessible"
|
|
echo ""
|
|
echo "Test endpoint /info:"
|
|
curl -s -w "HTTP Code: %{http_code}\nTime: %{time_total}s\n" http://localhost:8000/info || echo "API info non accessible"
|
|
} > "$LOG_DIR/api_test_${TIMESTAMP}.txt"
|
|
|
|
# Nettoyer les anciens logs (garder seulement les 10 derniers)
|
|
echo -e "${BLUE}Nettoyage des anciens logs...${NC}"
|
|
find "$LOG_DIR" -name "blindbit_*.log" -type f | sort | head -n -10 | xargs rm -f 2>/dev/null || true
|
|
find "$LOG_DIR" -name "config_*.toml" -type f | sort | head -n -10 | xargs rm -f 2>/dev/null || true
|
|
find "$LOG_DIR" -name "system_info_*.txt" -type f | sort | head -n -10 | xargs rm -f 2>/dev/null || true
|
|
find "$LOG_DIR" -name "sync_*.log" -type f | sort | head -n -10 | xargs rm -f 2>/dev/null || true
|
|
find "$LOG_DIR" -name "errors_*.log" -type f | sort | head -n -10 | xargs rm -f 2>/dev/null || true
|
|
find "$LOG_DIR" -name "api_*.log" -type f | sort | head -n -10 | xargs rm -f 2>/dev/null || true
|
|
find "$LOG_DIR" -name "api_test_*.txt" -type f | sort | head -n -10 | xargs rm -f 2>/dev/null || true
|
|
|
|
echo -e "${GREEN}=== Collecte terminée ===${NC}"
|
|
echo -e "${GREEN}Logs sauvegardés dans: $LOG_DIR${NC}"
|
|
echo -e "${GREEN}Fichiers créés:${NC}"
|
|
ls -la "$LOG_DIR"/*_${TIMESTAMP}.*
|
|
|
|
echo -e "${BLUE}=== Résumé ===${NC}"
|
|
echo "Logs Docker: blindbit_${TIMESTAMP}.log"
|
|
echo "Configuration: config_${TIMESTAMP}.toml"
|
|
echo "Infos système: system_info_${TIMESTAMP}.txt"
|
|
echo "Synchronisation: sync_${TIMESTAMP}.log"
|
|
echo "Erreurs: errors_${TIMESTAMP}.log"
|
|
echo "API: api_${TIMESTAMP}.log"
|
|
echo "Test API: api_test_${TIMESTAMP}.txt"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|