Tag Archive for Uptime

Afficher le débit de sa freebox sur une page html

download

 

Vous l’avez peut-être remarqué, en bas a gauche, 2 graphiques montrent le débit actuel de ma freebox.

Simple ? Pas tellement. En réalité, pour voir ces graphiques, vous devez être logué sur votre interface free (je parle ici de la freebox V6 : http://mafreebox.freebox.fr).

Alors je me suis amusé a faire un simple script qui créé une image a partir de l’interface d’administration, pour pouvoir l’afficher sur mon blog. Ce script créé 2 images, upload.png et download.png que je peux ensuite afficher ou je veux.

Needed :

  • Une freebox V6
  • Une machine sous linux
  • Un blog ou un site… (sinon, aucun intérêt)

On commence par créer un fichier « freebox » dans lequel on met le code suivant :

#!/bin/bash

# On se place dans le dossier du traitement
cd /home/user/www/blog/fbx

# On se logue et on sauvegarde le Cookie de session
wget -SO /dev/null --save-cookies freebox.cookie --post-data 'login=freebox&passwd=motdepasse' "http://mafreebox.freebox.fr/login.php"

# On télécharge l'image du téléchargement avec le cookie
wget -SO /home/user/www/blog/fbx/download.png --load-cookies freebox.cookie "http://mafreebox.freebox.fr/rrd.cgi?db=fbxconnman&dir=down&period=undefined&w=278&h=278&color1=00ff00&color2=ff0000"

# On télécharge l'image de l'upload avec le cookie
wget -SO /home/user/www/blog/fbx/upload.png --load-cookies freebox.cookie "http://mafreebox.freebox.fr/rrd.cgi?db=fbxconnman&dir=up&period=hour&w=278&h=278&color1=00ff00&color2=ff0000"

# On supprime le cookie créé
rm freebox.cookie

Une fois ce script créé, rendez le executable :

chmod 755 freebox

Puis créez un cronjob qui appelle toutes les minutes ce script :

*/1 * * * * /home/user/www/blog/fbx/freebox

Voilà, toutes les minutes, deux images, upload.png et download.png seront créées et utilisables !

Si vous avez un serveur web qui n’est pas chez vous, vous pouvez faire la même chose en ouvrant votre interface a l’extérieur sur l’interface Freebox (Accès distant). Mais attention, votre mot de passe est transmis en clair sur le réseau (pas de SSL).

Amusez-vous bien.

P.S. : Je suis d’accord, c’est un gros truc de Geek qui sert a rien…

Un mini script pour calculer votre UpTime

uptime

Comme je suis en train de tester ce satané auto hébergement, je me suis dit que je voulais savoir si mon blog était up, chaque minute. Alors, après 5 minutes de réflexion intense (en regardant la saison 6 de dexter en VOSTFR), voici ce que j’ai fait.

Pour commencer, un simple script qui, lorsqu’il est appelé, enregistre en base le timestamp a laquelle le script a été appelé :

La table SQL :

CREATE TABLE IF NOT EXISTS `uptime` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`timestamp` bigint(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `timestamp` (`timestamp`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Le premier script : uptime.php (A installer à la racine du site)

<?
$L=mysqli_connect("localhost", "login", "motdepasse");
if($L) mysqli_select_db($L, "uptime");

$i=mysqli_query($L, "INSERT INTO uptime VALUES (NULL, ".time().");") or die(mysqli_error($L));
?>

Si vous êtes parano, vous pouvez limiter les adresses IP qui appellent ce script :

if($_SERVER['REMOTE_ADDR']!='addresse.ip.du.testeur') die("Acces refusé");

Sur un serveur distant, on met un cronjob qui appelle toutes les minutes ce script :

*/1 * * * wget -O /dev/null http://www.mondomaine.com/uptime.php

Maintenant, il nous faut un script pour calculer l’uptime a partir des données enregistrées : get_uptime.php

<?
$L=mysqli_connect("localhost", "login", "motdepasse");
if($L) mysqli_select_db($L, "uptime");

$q=mysqli_query($L, "SELECT min(timestamp) as tmin, max(timestamp) as tmax FROM uptime;");
$r=mysqli_fetch_assoc($q);

$m=round(($r['tmax']-$r['tmin'])/60,0,PHP_ROUND_HALF_DOWN);
$qnb=mysqli_query($L, "SELECT count(*) as total FROM uptime;");
$rnb=mysqli_fetch_assoc($qnb);

if($rnb['total']>$m) echo "100%"; else echo round(($rnb['total']/$m)*100,2)."%";
?>

Et voilà ! le tour est joué !

cela suppose d’avoir accès a une machine distante qui est toujours UP… (si elle plante, ça pourrira également votre uptime).

Vous pouvez tester ça : http://crontab.fr/login.php Jamais essayé.

L’idée est simpliste. On prend le premier test et le dernier, on calcule le nombre de minutes entre chaque et si le nombre d’enregistrement est inférieur au nombre de minute, on a pas 100% d’uptime.

Je ne sais pas si ce mécanisme peut servir a quelqu’un, mais au cas où…