[Tuto/HowTo] [GNU/Linux] Automatiser export des fichiers logs depuis un serveur via dossier partagé via SSHFS et cron

Tracking web, logs, applications etc (par exemple piwik)
Avatar du membre
voxdemonix
Messages : 1237
Enregistré le : lun. févr. 02, 2015 7:28 pm

[Tuto/HowTo] [GNU/Linux] Automatiser export des fichiers logs depuis un serveur via dossier partagé via SSHFS et cron

Message par voxdemonix » dim. oct. 09, 2016 2:05 pm

Automatiser export des fichiers logs depuis un serveur via dossier partagé monté via SSHFS

Introduction
  • SSHFS permet de monter des dossiers distant via fuse à travers SSH. Cron est un planificateur de tâche sur GNU/Linux.
    Notre script DIY en Bash se lancera tout les jours pendant la nuit (pic d'inactivité) et se chargera d'exporter le fichier /var/log/apache2/access.log dans le dossier partagé puis videra le fichier d'origine.
Mise en place
  1. Configurez le montage distant où exporter vos logs en suivant un des tutos suivants :
  2. Ajoutez ce script sur votre client (celui qui va exporter)
    Par exemple :
    1. Créez un dossier pour vos scripts (si vous n'en avez pas déjà un)
    2. Créez un fichier en ouvrant l'éditeur de texte
    3. Adaptez le script puis collez le dans l'éditeur de texte, tapez ensuite CTRL+X pour sauver&quitter
      • Code : Tout sélectionner

        #!/bin/bash
        #Licence WTFPL - infos : https://www.0rion.netlib.re/forum4/viewtopic.php?f=45&t=345
        
        folderExport="/media/dossierPartage/log" # folder where export log (use for test if the remote folder is mount) - ne remplacez pas par la racine du montage !
        mountPath="/media/dossierPartage"
        
        startTime=`date +%s`
        mountpoint --quiet $mountPath
        if [ $? -eq 0 ]; then
        	endTime=`date +%s`
        	runTime=$((endTime-startTime))
        	if [ "$runTime" -lt "600" ];then
        			#export log - copy and adapt this line if you want upload more than one log's file
        	cat /var/log/apache2/access.log >> $folderExport/server1_apache2_access.log
        			#clear old log
        	echo "" > /var/log/apache2/access.log
        	
                rm /var/log/apache2/*.log.1 
                rm /var/log/apache2/*.gz
        	fi
        
        else
        	echo "$folderExport is not mount - $folderExport n'est pas monté"
        
        fi
        
        • mountPath="/media/dossierPartage" => votre montage
          • folderExport="/media/dossierPartage/log" => le dossier où exporter
            • server1_apache2_access.log => le fichier où exporter
              /var/log/apache2 => chemin vers vos fichiers logs (par défaut apache2)
        • Rendez exécutable le script nouvellement créé
        • Accordez le bon propriétaire au script
          • Code : Tout sélectionner

            sudo chown root:$USER /opt/scripts/shareLog.sh
            $USER => vaut votre utilisateur session, remplacez par l'utilisateur de votre choix ou root
      • Éditez votre cron en root
      • Choisissez l'option 2 (nano)
      • Ajoutez la ligne suivante puis sauvez&quittez avec CTRL+X
        • Code : Tout sélectionner

          0  3  *  *  * /opt/scripts/shareLog.sh
          • Ce cron appellera votre script tout les jours a 3h du matin. Si vous souhaitez l'appeler toutes les heures remplacez par
Modifié en dernier par voxdemonix le lun. mai 29, 2017 5:31 pm, modifié 10 fois.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1237
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] [GNU/Linux] Automatiser export des fichiers depuis un serveur via dossier partagé monté via SSHFS

Message par voxdemonix » mar. oct. 11, 2016 3:01 pm

Si vous avez l'erreur "fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf" Et supprimez le caractère # devant user_allow_other
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité