Reboot d’une Freebox Revolution à distance ou automatisée ;)

27 mars 2011 – 23:39

Je profite de la réception de la nouvelle Freebox V6 pour vous faire part d’un petit script qui vous permettra de redémarrer votre Freebox à distance, ou de façon automatisée.

Deux versions donc :

  • Une version interface web
  • Une version script php-cli avec support CURL

Pour la version interface web, il vous faut au sein de votre réseau local un serveur web (apache, IIS, lighttpd, nginx… what else ?) accessible depuis l’extérieur de votre chez vous.
Libre à vous de placer une petite restriction IP ou un htaccess dans le répertoire contenant le script.

Pour le script « cronable », il nécessite une dépendance php5-curl et php5-cli sur une machine linux (@Debianlike : apt-get install php5-curl).

Il vous suffit de le lancer comme ceci :

php freeboxReboot.php adresse-ip-de-la-freeboite password-du-compte-freebox

Pour amorcer le reboot de votre freebox toutes les nuits/semaines/mois/jour de pleine lune/… vous devrez mettre en place une crontab.

Par exemple :

# Les jours de la semaine à 23h, redémarrer la freeboite
0 23 * * 1-5 php -q -f /var/www/scripts/fbxReboot.php 192.168.1.254 Fr33R0x

Note : La Freebox redémarre avec un timeout de 1 seconde, vous devriez donc voir votre Freebox redémarrer presque instantanément ;)

Interface web Freebox Reboot :

fbx-reboot-web-interface

Script PHP-CLI avec support CURL :

fbxreboot-cli

Je décline toutes responsabilités en cas de mauvaises utilisations. (Même si je ne vois pas comment vous pourriez y arriver :) )

Mise en place d’un Load Balancer Linux Virtual Server (LVS) CentOS

27 mars 2011 – 21:42

Configuration côté Serveur LVS :

Installation sous CentOS du paquet ipvsadm

  • yum install ipvsadm

Lire la suite…

Sonde MySQL pour analyser en live les requêtes SQL en erreur

26 janvier 2011 – 18:34

Afin de détecter en direct des requêtes SQL jouées sur une base MySQL dans un contexte de production, j’ai été amené à utiliser une « sonde » afin de remonter les requêtes SQL en erreur.

Cette sonde n’est en fait qu’une petite ligne de commande qui pourrait largement être améliorée (génération d’un rapport journalier des requêtes en erreurs, reporting par mail, etc).

Le script se base sur le très célèbre ensemble d’outils Maatkit, tout est disponible sur le site suivant :

http://code.google.com/p/maatkit/

Sous debian/Ubuntu :

apt-get install maatkit

Sachez que vous trouverez un ensemble de site web vous expliquant comment installer ce projet à partir du package tar.gz si vous ne le trouvez pas dans les dépôts de votre distribution.
Un autre avantage à le compiler à partir du tar.gz c’est que vous aurez la toute dernière version.
Lire la suite…

Mise en place de la supervision d’un NetApp sous Cacti

25 janvier 2011 – 11:52

Vous avez un équipement de stockage type NetApp FAS20xx qui vous pose soucis ou que vous voulez simplement monitorer un peu mieux qu’avec l’outil de NetApp (NetApp System Manager) ?

Alors ce template est fait pour vous ! Il suffit d’aller faire un tour sur ce site :
http://www.elifulkerson.com/projects/netapp-filer-cacti-template.php

Vous allez récupérer deux fichiers :

cacti_host_template_netapp.xml
netapp-volumes.xml

La procédure pour l’ajout du template NetApp sous Cacti 0.8.7 est simple, et se fait en 2 étapes :

  • Importer le fichier « cacti_host_template_netapp.xml »
  • Copier le fichier « netapp-volumes.xml » dans le répertoire /var/www/cacti/scripts et /var/www/cacti/resource/snmp_queries/

Lire la suite…

Powershell (module dnsShell) gestion des DNS sous windows 2008

24 janvier 2011 – 16:40

Afin d’automatiser la mise en place des DNS dans une plateforme de test, j’ai utilisé le module dnsShell pour PowerShell.

Module dnsShell : http://code.msdn.microsoft.com/dnsshell

Il suffit de décompresser l’archive dans un des paths précisés par la variable PSModulePath :

$Env:PSModulePath
C:\Documents and Settings\\My Documents\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\

Le script create-dns.ps1 :

Import-Module DnsShell

$ServerName="DNS01"

# Test Platform
New-DnsZone testplatform.fr -ZoneType Primary -PassThru

Import-Csv "testplatform.csv" | ForEach-Object {
New-DnsRecord -Name $_.hostname -IPAddress $_.ip -Zone $_.domain -Type A -Server $ServerName -PassThru
}

Le contenu d’un fichier testplatform.csv typique :

hostname,ip,domain
# testplatform.fr
ftp,192.168.0.120,testplatform.fr
www,192.168.0.100,testplatform.fr
intra,192.168.0.110,testplatform.fr
lb1,192.168.0.101,testplatform.fr
gateway,192.168.0.254,testplatform.fr

Il suffit de lancer le script ./create-dns.ps1 au sein d’une console PowerShell pour initialiser la zone DNS testplatform.fr

La technique n’est pas forcément très belle, mais elle a le mérite de marcher !