63 lines
1.9 KiB
Bash
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é ==="
|