#!/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é ==="