Récupérer les logs OVH automatiquement

logs mutu ovh

Si vous souhaitez récupérer vos logs OVH, vous allez (ou vous avez dû) vous rendre compte à quel point cette tâche est longue et fastidieuse.
Pour accéder aux logs d’un mutualisé, OVH ne propose qu’une interface web sur laquelle on ne peut télécharger que des archives journalières. Si on souhaite analyser les logs d’un mois entier par exemple, il faut cliquer 30 fois pour télécharger 30 fichiers…Pénible.

Pour régler le problème, nous allons automatiser ces téléchargements grâce à un script tout simple.
C’est un script Bash donc réservé aux machines sous Mac OS ou Linux.
Pour les utilisateurs sous Windows, vous pouvez le tenter avec Cygwin sans problème.

La gestion des logs des mutualisés chez OVH

Pour récupérer les logs d’un serveur mutualisé chez OVH, il faut se rendre sur le site https://logs.ovh.net/ et ensuite entrer un nom de domaine.

Plus rapide, vous pouvez accéder directement aux logs de votre site en indiquant le domaine dans l’URL : https://logs.ovh.net/votre-domaine.tld/. Par exemple : https://logs.ovh.net/memoinfo.fr/

A partir de là, vous devez vous identifier pour continuer.

Plus rapide encore, si vous voulez accéder aux logs d’un mois donné pour votre domaine, vous pouvez indiquer la date directement dans l’URL : https://logs.ovh.net/votre-domaine.tld/logs-mm-aaaa/. Par exemple : https://logs.ovh.net/memoinfo.fr/logs-12-2014/
Cette dernière URL donnera accès à tous les logs de memoinfo.fr pour le moins de décembre 2014.
Il est donc très simple de forger une URL pour accéder directement à ses logs.

interface des logs mutu ovh

Récupérer les logs OVH automatiquement

Mettons en place notre script :

#!/bin/bash

# Usage :	./script-name.sh domaine mm-aaaa
# ex : 		./script-name.sh memoinfo.fr 12-2014

# votre domaine, sera passé en paramètre de la commande
SITE=$1
# période, sera passée en paramètre de la commande
PERIODE=$2
# login de votre compte OVH
LOGIN=votre-login-ovh
# mot de passe de votre compte OVH
PASS=votre-mot-de-passe
# Répertoire de destination. Par défaut sur le bureau (mac). Changez pour ce que vous voulez
DOSSIER=$HOME/Desktop/$SITE/$PERIODE

# Créé le dossier qui va récupérer les logs. Etape obligatoire sinon wget retourne une erreur concernant ses logs
echo 'Création du dossier'
mkdir -p $DOSSIER

# Téléchargement des logs via wget avec les options suivantes :
echo 'Téléchargement des logs...'
wget -nv -nd -r -A.gz -P$DOSSIER https://logs.ovh.net/$SITE/logs-$PERIODE/ --http-user=$LOGIN --http-password=$PASS -o $DOSSIER/logs.wget.txt

echo 'terminé'

Commencez par copiez/collez ce code dans votre éditeur de texte préféré.
Enregistrez le fichier et donnez-lui le nom que vous voulez pourvu qu’il porte l’extension « .sh ». Et tout de suite, donnez les droits d’exécution à votre fichier.

Chmod +x votre-script.sh

Maintenant nous allons personnaliser le script.

LOGIN= indiquez ici votre identifiant OVH de la forme xxxxxx-ovh ou une adresse email.
PASS= indiquez ici le mot de passe qui va avec.
DOSSIER= indiquez ici le chemin sur votre machine où seront téléchargés les logs.

C’est tout ! Ne reste plus qu’à tester.
Pour utiliser le script, c’est simple, il suffit de passer en paramètre :

  1. votre nom de domaine
  2. le mois que vous souhaitez récupérer.

Si vous avez plusieurs serveurs mutualisés, vous n’aurez pas à modifier le script à chaque fois, mais uniquement changer les paramètres d’appels :

./votre-script.sh memoinfo.fr 12-2014

Lancez le script, et patientez. Le temps de téléchargement dépendra de votre connexion internet et de la taille de vos logs.

MacBook-Air:Desktop $ ./test.sh memoinfo.fr 01-2014
Création du dossier
Téléchargement des logs...
Terminé

Rendez-vous dans le dossier où vous avez demandé le téléchargement, vous devrez voir quelque chose comme ceci :

logs mutu téléchargés

Vous avez un dossier avec le nom de votre domaine, puis un dossier avec le mois demandé.
Dans ce dossier vous avez une archive « .gz » pour chaque jour du mois, et également un fichier de log pour la commande wget. Comme cela vous voyez ce qu’il s’est passé et si tout a bien été téléchargé.

Voilà, normalement vous devriez gagner pas mal de temps avec ce script 🙂 Prochaine étape : préparer les logs pour pouvoir les importer dans Excel.
Si vous savez faire mieux, plus simple, ou plus rapide pour récupérer vos logs OVH : n’hésitez pas à soumettre votre idée.

6 commentairesLaisser un commentaire

  • Bonjour,

    Cet article est très intéressant ! Il m’a servi de base pour réaliser 2 scripts de récupération des logs que je livre ci-dessous au cas où ça intéresserait quelqu’un.

    #1 : getOVHlogs.sh permet de télécharger les logs d’un mois donné et de les stocker dans un répertoire au format américain (AAAA-MM) pour un classement automatique par ordre chronologique :

    ********************************************************************************
    #!/bin/bash

    # Usage : ./getOVHlogs.sh mm-aaaa
    # ex : ./getOVHlogs.sh 12-2014

    #*** DECLARATION OF VARIABLES ***
    # the period is the 1st parameter of the command
    PERIOD=$1

    # the URI the logs are from
    LOGSURI=https://logs.ovh.net
    # the OVH login
    LOGIN=votre_login
    # the OVH password
    PASS=votre_mot_de_passe
    # the website the logs are about
    WEBSITE=votre_nom_de_domaine
    # declaration of the destination folder
    PATH=/opt/logs
    MONTH=$(echo $PERIOD | /bin/cut -d’-‘ -f1)
    YEAR=$(echo $PERIOD | /bin/cut -d’-‘ -f2)
    FOLDER=$PATH/$WEBSITE/$YEAR »-« $MONTH

    #*** CREATIONS ***
    # create the logs folder
    /bin/mkdir -p $FOLDER

    # Download of the logs
    echo ‘Downloading the logs…’
    /usr/bin/wget -nv -nd -r -A.gz -P$FOLDER \
    $LOGSURI/$WEBSITE/logs-$PERIOD/ \
    –http-user=$LOGIN \
    –http-password=$PASS \
    -o $FOLDER/logs.wget.txt

    echo ‘Logs downloaded in ‘$FOLDER
    echo

    exit

    ********************************************************************************

    #2 : getmultiOVHlogs.sh permet de télécharger les logs d’une période donnée. On indique en premier paramètre le mois de début et en second le mois de fin de période selon le format MM-AAAA. Ensuite ce script appelle le script précédent pour télécharger chaque log est les ordonner par année et par mois :

    ********************************************************************************
    #!/bin/bash
    # Usage : ./getmultiOVHlogs.sh mm-aaaa mm-aaaa
    # ex : ./getmultiOVHlogs.sh 12-2014 06-2015
    # -> downloads every single logs from december 2014 to june 2015

    #*** DECLARATION OF VARIABLES ***
    # Parameters
    # If parameter are not defined then the program is aborted
    if [[ -n $1 ]]
    then PERIOD_FROM=$1
    else
    echo ‘no period specified … program aborted’
    exit
    fi
    if [[ -n $2 ]]
    then PERIOD_TO=$2
    else PERIOD_TO=$1
    fi

    YEAR_FROM=$(echo $PERIOD_FROM | cut -d’-‘ -f2)
    MONTH_FROM=$(echo $PERIOD_FROM | cut -d’-‘ -f1)
    YEAR_TO=$(echo $PERIOD_TO | cut -d’-‘ -f2)
    MONTH_TO=$(echo $PERIOD_TO | cut -d’-‘ -f1)

    # browsing the periods to get each batch of logs
    for ((y=$YEAR_FROM; y<=$YEAR_TO; y++))
    do
    # setting up the months to be browsed according to the current year
    case $y in
    $YEAR_FROM ) START=$MONTH_FROM; END=12 ;;
    $YEAR_TO ) START=1; END=$MONTH_TO ;;
    *) START=1; END=12
    esac

    for ((m=$START; m<=$END; m++))
    do
    if [[ $m -lt 10 ]]
    then m="0"$m
    fi
    echo "Period : "$m $y
    ./getOVHlogs.sh $m"-"$y
    done
    done

    echo "Downloads done."

    exit
    ********************************************************************************

  • Bonjour.

    J’ai fait tout comme vous dites mais lorsque je lance la commande ./votre-script.sh mon-site.fr 03-2016 voici ce que je vois dans Cygwin
    Création du dossier
    Téléchargement des logs…
    ./script.sh: ligne 19: wget : commande introuvable
    terminé

    Je vais dans mon dossier, je vois bien le répertoire de mon site qui est créé mais il est vide

  • Bonsoir Alexandre,

    Cela ne fonctionne pas car vous avez un problème avec Wget. Il n’est peut être tout simplement pas présent dans votre Cygwin. Vérifiez et installez-le si besoin.

  • Bonjour Pol, merci pour votre réponse. J’ai installé le pack Wget et ce problème est résolu. J’ai en revanche un autre problème. Quand je lance le script voici ce qui s’affiche dans Cygwin
    $ ./log.sh monsite.fr 05-2015
    Création du dossier
    Téléchargement des logs…
    : No such file or directoryonsite.fr
    terminé

    Quelques précisions
    – le fichier log.sh se trouve sur le bureau
    – par défaut le script crée un dossier avec les logs sur le bureau
    – dans la réponse « No such file or directory » la 1ère lettre de mon site disparaît toujours ce qui donne directoryonsite.fr C’est peut-être pour cela qu’il ne trouve pas le site onsite.fr car le mien est monsite.fr ?

  • Bonsoir Alexandre,

    Là honnêtement je ne saurai pas dire.
    Déjà avec Cygwin, on est sur Windows. Alors peut-être que quelque chose ne plait pas quelque part.
    Est-ce que le script créé bien le dossier sur le bureau ? C’est peut-être de ce côté là qu’il faut regarder.

Vous avez aimé cet article ? Réagissez !

Votre email ne sera pas publié. Les champs requis sont marqués d'une astérisque *