[R]télécharger les log sans passer par le panel

Pour parler de tout ce qui concerne l'hébergement web, c'est ici.
Répondre
Avatar du membre
kagescan
Messages : 11
Enregistré le : 29 janv. 2018 22:56
Compte LegTux : kagescan

[R]télécharger les log sans passer par le panel

Message par kagescan » 29 janv. 2018 23:10

Bonjour, j'aimerai faire des statistiques à propos de mon site et je voudrais savoir si il existe un moyen de pouvoir télécharger des logs ou les sauvegarder chaque semaine avec du PHP ou un script shell?
Je voudrais en fait avoir les stats de tout un mois voire deux mais je ne peux pas toujours téléchargé les logs donc récupérer simplement avec un script shell ou PHP pourrait être pratique
Même si ce que je demande est probablement impossible je tente quand même ! Merci !!
Modifié en dernier par kagescan le 15 avr. 2018 12:01, modifié 1 fois.

Avatar du membre
Simon Le Guével
Administrateur
Messages : 1274
Enregistré le : 04 sept. 2010 12:30
Compte LegTux : simon
Localisation : Saint-Brieuc
Contact :

Re: télécharger les log sans passer par le panel

Message par Simon Le Guével » 30 janv. 2018 19:53

Bonsoir,

Ça devrait pouvoir se faire, je vais vous faire ça !

Simon

ernesto
Messages : 5
Enregistré le : 24 janv. 2014 17:04
Compte LegTux : ernesto

Re: télécharger les log sans passer par le panel

Message par ernesto » 14 avr. 2018 15:11

Bonjour.
Voila un script php qui permet de récupérer les log sans passer par le panel.
Il suffit de renseigner votre identifiant et mot de passe en début de script.
Le script va récupérer les log de la semaine: access.log et les logs de la semaine dernière; access_hold.log.
le script est également dispo ici: https://github.com/steneor/get-log-legtux
Cdlt

Code : Tout sélectionner

<?php
// connexion à legtux via la page de login
$login = "identifiant";     // ici votre identifiant
$password = "motdepasse";    // ici votre mot de passe
$url = "https://www.legtux.org/";
$cookie = "cookie.txt";
$timeout = 60;
$nom_local_zip = "log.zip";
$postdata = "login=" . $login . "&password=" . $password ;

$ch = curl_init();
curl_setopt ( $ch, CURLOPT_URL, $url . "index.php?page=connec" );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt ( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" );
curl_setopt ( $ch, CURLOPT_TIMEOUT, $timeout );
curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 0 );
curl_setopt ( $ch, CURLOPT_HEADER, 0);
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_COOKIEJAR, $cookie );
curl_setopt ( $ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt ( $ch, CURLOPT_REFERER, $url . "index.php" );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $postdata );
curl_setopt ( $ch, CURLOPT_POST, 1 );

$result = curl_exec ( $ch );
$result = curl_exec ( $ch );

curl_setopt ( $ch, CURLOPT_POST, 0 );

// fin de connexion, on ne ferme pas la curl en cours pour l'utiliser aprés
// récupération du fichier de log_user_YYYMMDD_hhmm.zip

//////////////////////////log de cette semaine: access.log ///////////////////////////////
curl_setopt ( $ch, CURLOPT_URL, $url . "member/apache_log.php" );
if ( $nom_local_zip ) {
    $fp = fopen( $nom_local_zip, 'w+b' ) or die( "Le fichier '$nom_local_zip' n'a pu etre ouvert en ecriture" );
    curl_setopt( $ch, CURLOPT_FILE, $fp );
} else {
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
}

$ret = curl_exec( $ch );

if ( $nom_local_zip ) {
    fclose( $fp );
}
if ( $ret === false ) {
    die( "Une erreur a été rencontrée : " . curl_error() );
}

// décompression de l'archive zip
$zip = new ZipArchive;
$zip->open($nom_local_zip);
$zip->extractTo('./');
$zip->close();

//////////////////////////log de la semaine dernière: access ///////////////////////////////
curl_setopt ( $ch, CURLOPT_URL, $url . "member/apache_log_old.php" );
if ( $nom_local_zip ) {
    $fp = fopen( $nom_local_zip, 'w+b' ) or die( "Le fichier '$nom_local_zip' n'a pu etre ouvert en ecriture" );
    curl_setopt( $ch, CURLOPT_FILE, $fp );
} else {
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
}
$ret = curl_exec( $ch );

if ( $nom_local_zip ) {
    fclose( $fp );
}
if ( $ret === false ) {
    die( "Une erreur a été rencontrée : " . curl_error() );
}

// décompression de l'archive zip
$zip = new ZipArchive;
$zip->open($nom_local_zip);
$zip->extractTo('./');
$zip->close();

curl_close( $ch );   //on ferme la curl

//nettoyage: efface les fichiers intermédiaires
unlink($cookie);
unlink($nom_local_zip);

//affiche la liste des fichiers dans le repertoire
    $rep = opendir( "./");
    chdir( "./");
    while ( $file = readdir( $rep ) ) {
        if ( $file != '..' && $file != '.' && $file != '' ) {
            if ( ( $file ) ) {
                echo "<a href=$file target=_blank>$file</a><br>";
            }
        }
    }
    closedir( $rep );

?>

Avatar du membre
kagescan
Messages : 11
Enregistré le : 29 janv. 2018 22:56
Compte LegTux : kagescan

Re: télécharger les log sans passer par le panel

Message par kagescan » 15 avr. 2018 12:01

Salut merci braucoup pour ta réponse !
Au final, je n'en ai plus besoin (j'ai préféré m'en passer et respecter la vie provée de mes visiteurs) mais merci quand même pour avoir passé du temps pour l'écrire !
Sujet [R]

Répondre