102 lines
3.1 KiB
Bash
102 lines
3.1 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Script pour gérer la rotation manuelle des logs Veza
|
||
|
|
# Usage: bash scripts/rotate_logs.sh [service]
|
||
|
|
#
|
||
|
|
# Services disponibles:
|
||
|
|
# backend-api, redis, db, rabbitmq, chat-server, stream-server, all
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
LOG_DIR="/var/log/veza"
|
||
|
|
SERVICE="${1:-all}"
|
||
|
|
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||
|
|
|
||
|
|
rotate_file() {
|
||
|
|
local file="$1"
|
||
|
|
local label="$2"
|
||
|
|
|
||
|
|
if [ ! -f "$file" ]; then
|
||
|
|
echo "⚠️ Fichier $file non trouvé, ignoré"
|
||
|
|
return
|
||
|
|
fi
|
||
|
|
|
||
|
|
local size=$(du -h "$file" | cut -f1)
|
||
|
|
echo "🔄 Rotation de $label ($size)..."
|
||
|
|
|
||
|
|
# Créer une copie avec timestamp
|
||
|
|
cp "$file" "${file}.${TIMESTAMP}"
|
||
|
|
|
||
|
|
# Compresser l'ancien fichier
|
||
|
|
gzip "${file}.${TIMESTAMP}"
|
||
|
|
|
||
|
|
# Vider le fichier actuel
|
||
|
|
> "$file"
|
||
|
|
|
||
|
|
echo "✅ $label roté vers ${file}.${TIMESTAMP}.gz"
|
||
|
|
}
|
||
|
|
|
||
|
|
case $SERVICE in
|
||
|
|
backend-api)
|
||
|
|
rotate_file "$LOG_DIR/backend-api.log" "Backend API"
|
||
|
|
rotate_file "$LOG_DIR/backend-api-error.log" "Backend API Errors"
|
||
|
|
;;
|
||
|
|
redis)
|
||
|
|
rotate_file "$LOG_DIR/redis.log" "Redis"
|
||
|
|
rotate_file "$LOG_DIR/redis-error.log" "Redis Errors"
|
||
|
|
;;
|
||
|
|
db)
|
||
|
|
rotate_file "$LOG_DIR/db.log" "Database"
|
||
|
|
rotate_file "$LOG_DIR/db-error.log" "Database Errors"
|
||
|
|
;;
|
||
|
|
rabbitmq)
|
||
|
|
rotate_file "$LOG_DIR/rabbitmq.log" "RabbitMQ"
|
||
|
|
rotate_file "$LOG_DIR/rabbitmq-error.log" "RabbitMQ Errors"
|
||
|
|
;;
|
||
|
|
chat-server)
|
||
|
|
rotate_file "$LOG_DIR/chat-server.log" "Chat Server"
|
||
|
|
rotate_file "$LOG_DIR/chat-server-error.log" "Chat Server Errors"
|
||
|
|
;;
|
||
|
|
stream-server)
|
||
|
|
rotate_file "$LOG_DIR/stream-server.log" "Stream Server"
|
||
|
|
rotate_file "$LOG_DIR/stream-server-error.log" "Stream Server Errors"
|
||
|
|
;;
|
||
|
|
all)
|
||
|
|
echo "🔄 Rotation de tous les logs Veza..."
|
||
|
|
echo ""
|
||
|
|
rotate_file "$LOG_DIR/backend-api.log" "Backend API"
|
||
|
|
rotate_file "$LOG_DIR/backend-api-error.log" "Backend API Errors"
|
||
|
|
rotate_file "$LOG_DIR/redis.log" "Redis"
|
||
|
|
rotate_file "$LOG_DIR/redis-error.log" "Redis Errors"
|
||
|
|
rotate_file "$LOG_DIR/db.log" "Database"
|
||
|
|
rotate_file "$LOG_DIR/db-error.log" "Database Errors"
|
||
|
|
rotate_file "$LOG_DIR/rabbitmq.log" "RabbitMQ"
|
||
|
|
rotate_file "$LOG_DIR/rabbitmq-error.log" "RabbitMQ Errors"
|
||
|
|
rotate_file "$LOG_DIR/chat-server.log" "Chat Server"
|
||
|
|
rotate_file "$LOG_DIR/chat-server-error.log" "Chat Server Errors"
|
||
|
|
rotate_file "$LOG_DIR/stream-server.log" "Stream Server"
|
||
|
|
rotate_file "$LOG_DIR/stream-server-error.log" "Stream Server Errors"
|
||
|
|
echo ""
|
||
|
|
echo "✅ Rotation terminée!"
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
echo "❌ Service inconnu: $SERVICE"
|
||
|
|
echo ""
|
||
|
|
echo "Services disponibles:"
|
||
|
|
echo " - backend-api"
|
||
|
|
echo " - redis"
|
||
|
|
echo " - db"
|
||
|
|
echo " - rabbitmq"
|
||
|
|
echo " - chat-server"
|
||
|
|
echo " - stream-server"
|
||
|
|
echo " - all"
|
||
|
|
exit 1
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "📊 Fichiers de logs actuels:"
|
||
|
|
ls -lh "$LOG_DIR"/*.log 2>/dev/null || echo "Aucun fichier actif"
|
||
|
|
echo ""
|
||
|
|
echo "📦 Archives compressées:"
|
||
|
|
ls -lh "$LOG_DIR"/*.gz 2>/dev/null || echo "Aucune archive"
|