Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/07/2008, à 10:36

pabix

[HOWTO] Conserver des journaux complets avec Statcounter.com

Bonjour !

Si jamais vous utilisez statcounter, vous avez remarqué qu’ils ne conservent que les 500 dernières lignes de journaux !

Voici un petit script qui automatise la récupération des 500 dernières lignes et les fusionne avec tout ce qu’il a déjà récupéré, de manière à avoir un gros journal de taille illimitée !

Vous devrez personnaliser les 3 premières lignes avec votre nom d’utilisateur, mot de passe et numéro de projet (car chaque utilisateur peut avoir différents projets pour différents sites web). Pour connaître le numéro de projet, connectez-vous manuellement sur statcounter et regardez l’URL correspondant à votre projet.

Si vous voulez automatiser le script, regardez la doc, section "crontab".

Mettez ce script dans un répertoire dédié, sous le nom "statcounter", adaptez les 3 lignes au début, ouvrez un terminal dans ce répertoire, et tapez « chmod +x statcounter ».
De là, lancez « ./statcounter » et vos logs seront récupérés.

Je mettrai mon script à jour, ou pas, selon ma disponibilité. Je ne garantis pas les résultats pour vous, mais pour moi ça marche. Bonne utilisation !

#!/usr/bin/env bash
USERNAME="VOTRE NOM D’UTILISATEUR"
PASSWORD="VOTRE MOT DE PASSE"
PROJECT_ID="VOTRE NUMÉRO DE PROJET"

Custom_headers="User-Agent: Netcat/Log Fetcher Bot
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"

# Getting www.statcounter.com {{{

nc www.statcounter.com 80 > RECEIVED << EOF
GET / HTTP/1.0
Host: www.statcounter.com
${Custom_headers}

EOF

# }}}
# getting session id {{{

CONNEXION_SERVER="$(grep 'method="POST"' RECEIVED | grep -o 'action="[^"]*"' | grep -o "[a-z]*[0-9]*.statcounter.com")"
URL="$(grep "counter.php" RECEIVED | grep -o "http://[a-z]*[0-9]*.statcounter.com/counter.php.*invisible=0")"
SERVER="$(echo "$URL" | grep -o "[a-z]*[0-9]*.statcounter.com")"
PAGE="$(echo "$URL" | grep -o "/counter.php?.*")"
nc "$SERVER" 80 > RECEIVED << EOF
GET ${PAGE} HTTP/1.0
Host: ${SERVER}
${Custom_headers}

EOF
FIRST_COOKIE="$(grep --binary-files=text Set-Cookie RECEIVED | grep -o "session_[^;]*;" | grep -o "[^;]*")"

# }}}
# {{{ Sending Username and Password
TO_BE_POSTED="form_user=${USERNAME}&form_pass=${PASSWORD}&remember=1&LOGIN_BUTTON=LOGIN"
LENGTH=${#TO_BE_POSTED}
nc "${CONNEXION_SERVER}" 80 > RECEIVED << EOF
POST /project/ HTTP/1.0
Host: ${CONNEXION_SERVER}
${Custom_headers}
Referer: http://www.statcounter.com/
Cookie: ${FIRST_COOKIE}
Content-Type: application/x-www-form-urlencoded
Content-length: ${LENGTH}

${TO_BE_POSTED}
EOF
# }}}

# {{{ Being redirected and changing session id
COOKIE="$(grep Set-Cookie RECEIVED | awk '{print $2}' | tr -d '\n') ${FIRST_COOKIE}"
CONNEXION_SERVER="$(grep "^Location:" RECEIVED | grep -o "[a-z]*[0-9]*\.statcounter\.com")"
NEWURL="$(grep "^Location:" RECEIVED | grep -o "/project/[^#]*")"

nc "${CONNEXION_SERVER}" 80 > RECEIVED << EOF
GET ${NEWURL} HTTP/1.0
Host: ${CONNEXION_SERVER}
${Custom_headers}
Referer: http://www.statcounter.com/
Cookie: ${COOKIE}

EOF

# }}}
# {{{ Asking for logs

nc "${CONNEXION_SERVER}" 80 > TempLOG << EOF
GET /project/standard2/csv/download_log_file.php?project_id=${PROJECT_ID} HTTP/1.0
Host: ${CONNEXION_SERVER}
${Custom_headers}
Cookie:${COOKIE}

EOF

# }}}

# {{{ Formatting log and wiping

tr -d '\r' < TempLOG | awk '/^$/ { f=1; next; } f' | sed -e 's/","/\t/g ;s/^"//g ; s/"$//g'> new_log
touch logs ; sort -r new_log logs | uniq > Complete_logs
mv Complete_logs logs
rm TempLOG
rm RECEIVED
rm new_log

# }}}

Dernière modification par pabix (Le 04/02/2009, à 18:54)


Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D

Hors ligne