DevOPS/Script/clean_log.sh

63 lines
1.9 KiB
Bash

#!/bin/bash
# Variables
LOG_DIR="/var/log" # Répertoire des logs
ARCHIVE_DIR="/tmp/logs_archive" # Répertoire temporaire pour stocker les archives
ARCHIVE_NAME="logs_$(date +%Y%m%d_%H%M%S).tar.gz" # Nom de l'archive basée sur la date actuelle
REMOTE_USER="user" # Nom d'utilisateur sur le serveur distant
REMOTE_HOST="192.168.1.100" # Adresse IP ou nom de domaine du serveur distant
REMOTE_DIR="/remote/path/to/store/logs" # Répertoire distant pour stocker les archives
SSH_PORT=22 # Port SSH, par défaut 22
# Création du répertoire d'archive s'il n'existe pas
if [ ! -d "$ARCHIVE_DIR" ]; then
mkdir -p "$ARCHIVE_DIR"
fi
# Archiver les logs
echo "=== Archivage des logs du répertoire $LOG_DIR ==="
tar -czf "$ARCHIVE_DIR/$ARCHIVE_NAME" -C "$LOG_DIR" .
if [ $? -eq 0 ]; then
echo "Archivage réussi : $ARCHIVE_DIR/$ARCHIVE_NAME"
else
echo "Erreur lors de l'archivage des logs"
exit 1
fi
# Transférer l'archive vers le serveur distant
echo "=== Transfert de l'archive vers $REMOTE_HOST ==="
scp -P $SSH_PORT "$ARCHIVE_DIR/$ARCHIVE_NAME" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR"
if [ $? -eq 0 ]; then
echo "Transfert réussi vers $REMOTE_HOST"
else
echo "Erreur lors du transfert de l'archive vers $REMOTE_HOST"
exit 1
fi
# Supprimer les logs locaux après transfert
echo "=== Suppression des logs locaux ==="
find "$LOG_DIR" -type f -name "*.log" -exec truncate -s 0 {} \;
if [ $? -eq 0 ]; then
echo "Suppression réussie des fichiers logs locaux"
else
echo "Erreur lors de la suppression des fichiers logs locaux"
exit 1
fi
# Nettoyage des archives locales après transfert
echo "=== Suppression des archives locales ==="
rm -f "$ARCHIVE_DIR/$ARCHIVE_NAME"
if [ $? -eq 0 ]; then
echo "Suppression des archives locales réussie"
else
echo "Erreur lors de la suppression des archives locales"
exit 1
fi
echo "=== Nettoyage des logs terminé ==="