Off Road

Chris’ blog

Off Road header image 4

Articles de 'dev'

Mysql 1114 The table is full

15.12.2008 23:37 · Aucun Commentaire

Si vous ne pouvez plus insérer d’enregistrement dans une base sous MySQL qui vous dit :

#1114 - The table ‘*****’ is full

Et que vous êtes en innoDB et que vous n’avez pas de problème d’espace disque après vérification, c’est sans doute qu’une limitation explicite dans le fichier de configuration de mySQM : /etc/mysql/my.cnf

Il faut donc ajouter plus de place à la base de donnée (parametre en rouge dans l’exemple suivant) :

# you may wish to change this size to be more suitable for your system
# the max is there to avoid run-away growth on your machine
innodb_data_file_path = ibdata1:10M:autoextend:max:256M
Là on a mis 256MO (117MO réels) au lieu de 128MO
C’est vraiment évident non ?

Vincent

[Lire la suite →]

Tags: IT · Server · dev · fr

Surveillance SNMP sur les Imprimantes

15.10.2008 17:44 · Aucun Commentaire

Toutes nos imprimantes ont la possibilité d’être surveillées en SNMP. Il devient intéressant d’avoir une vue d’ensemble sur une page web.

Au départ j’ai utilisé le PHP pour récupérer les numéros MIB utiles à la configuration de Nagios pour ajouter les imprimantes à notre monitoring. Puis il s’est avéré plus utile de garder la page PHP lorsque Canon nous appelait pour savoir si telle ou telle imprimante fonctionnait bien (ils sont capables de recevoir des messages pour le début de pannes, mais pas pour leur fin… vive le 21e siècle chez Canon).

Donc j’utilise la commande suivante sous linux

snmpwalk -Oa -v1 -c public x.x.x.x mib-2.43.18.1.1.8

x.x.x.x étant l’adresse IP ou le nom DNS de l’imprimante.

Cela m’a donné un code PHP ressemblant à ceci (bien sûr c’est un code écrit rapidement que j’améliorerais à l’usage) :

$printers = array(
“impr-irc2880-01″,
“impr-irc2880-02″,
“impr-irc2880-03″,
“impr-irc2880-04″,
“impr-irc2880-05″,
“impr-c1-01″,
“impr-c1-02″,
“impr-tech-01″);

$html = “”;

//recupération des messages dans un tableau $printers_tab
foreach($printers as $printer){

//on echape d’éventuelles commandes shell
$printer = escapeshellcmd($printer);

//-Oa permet d’éviter d’avoir des messages en Hexa
//mib-2.43.18.1.1.8 semble dans notre cas rassembler tous les messages d’erreurs
$cmd = “snmpwalk -Oa -v1 -c public $printer mib-2.43.18.1.1.8″;

//$output n’est pas correctement vidé à chaque usage de exec
unset($output);
exec($cmd,$output,$retourne);

//si la commande Shell a retourné une erreur on l’affiche (parfois juste une erreur dans l’adresse)
if($retourne != 0)
$printers_tab[$printer][0] = “erreur({$retourne})<br/>\n”;

//sinon, s’il n’y a aucun message on place un message indiquant que tout est “OK”
else{
$nbmsg = count($output);
if($nbmsg == 0) $printers_tab[$printer][0] = “OK”;
//et sinon on récupère tous les messages
else
for($i=0; $i < $nbmsg; $i++)
$printers_tab[$printer][$i] = $output[$i];
}
}

/****************************************************************************
* $printers_tab["nom_imprimante"][0-n] contient tous les messages à afficher par imprimante
***************************************************************************/

//affichage dans une liste
$html.= ”
<!– liste des imprimantes –>
<div id=’imprimantes’>
<ul id=’liste_imprimantes’>
“;

//pour chaque imprimante
foreach($printers_tab as $name=>$messages){

$html.= ”
<li ><a href=’http://$name/’ target=’_blank’>$name</a><ul>”;

//pour chaque message correspondant à l’imprimante $name
foreach($messages as $message){

$message = trim($message);

//les 30 premieres caractère correpondent à SNMPv2-SMI::mib-2.43.18.1.1.8.
//je garde les derniers numéros pour tenter d’en comprendre la logique
$afficher = substr($message, 30);
//moins de 30 caractères correspond à un message non attendu qu’on affichera
if(empty($afficher))
$afficher = $message;

$html.= ”
<li class=’message_impr’>$afficher</li>”;
}
$html.= ”
</ul></li>”;
}

$html.= ”
</ul><br style=’clear:both;’ />
<p>(Interrogation de SNMPv2-SMI::mib-2.43.18.1.1.8)
</p>
</div>
“;

J’obtiens un affichage de ce genre :

*           impr-irc2880-01
o             1.191 = STRING: “The M toner is low.”

*           impr-irc2880-02
o             OK

*           impr-irc2880-03
o             1.279 = STRING: “The M toner is low.”
o             1.280 = STRING: “Paper is out.”

*           impr-irc2880-04
o             1.206 = STRING: “Paper is out.”

*           impr-irc2880-05
o             OK

*           impr-c1-01
o             OK

*           impr-c1-02
o             OK

*           impr-tech-01
o             1.56 = STRING: “Powersave activ..”
(Interrogation de SNMPv2-SMI::mib-2.43.18.1.1.8)

[Lire la suite →]

Tags: IT · dev · fr · network

Messagerie Vocale Orange sur votre site web

16.09.2008 01:06 · Aucun Commentaire

Orange met à disposition une API pour accéder à notre messagerie vocale.

Cela signifie que l’on peut créer des applications (donc des sites web) qui permettent d’accéder à notre messagerie vocale.

Cela permet par exemple :

  • d’avoir un répondeur où les auditeurs laissent des messages et de laisser tout le monde les écouter sur le net
  • de supprimer les messages une fois récupéré en mp3, changer l’annonce.
  • On peut enfin archiver définitivement tous ses messages sans limite.
  • récupérer ses messages par email (pratique à l’étranger !)
  • etc etc etc

Une annonce personnalisée enfin paramétrable par heure. On peut enfin informer tous les mardi soir que si on est injoignable c’est parce qu’on a piscine ! et. Il doit y avoir des applications plus pratiques comme empêcher de laisser des messages le week-end et la nuit.

C’est par là : http://www.orangepartner.com/site/frfr/access_orange_apis/voicemailapi/understand/p_voicemail_api_understand.jsp

[Lire la suite →]

Tags: IT · dev · fr · phone

Encodage des sujets des emails

10.07.2008 12:30 · 2 Commentaires

Lorsqu’on envoi un email via nos applications “maison”, il arrive incroyablement souvent que l’encodage du sujet soit laissé de coté. CodeIgniter n’échappe pas à la règle.
Des antispam comme spamassassin pénalisent fortement ce genre de courrier.

La RFC 2047 indique comment doit être encodé un sujet d’email. C’est assez simple, ça utilise le même encodage que les url - en php la fonction urlencode() peut donc être utilisée - à l’exception des caractères = qui remplacent les caractères % habituels et des espaces qui n’ont pas à être remplacés par des +

Spamassassin pénalise également les emails qui contiennent plusieurs fois l’indication de l’encodage, bien que la rfc l’autorise. Nous allons donc indiquer une bonne fois pour toute en début et ne plus le mentionner. Donc le sujet doit commencer par =?UTF-8?Q?

Une fonction PHP qui fait tout cela est mb_encode_mimeheader() :

Et voila, nos emails seront beaucoup mieux notés par les messageries qui utilisent Spamassassin comme antispam et nous aurons la satisfaction de respecter les normes internet.

[Lire la suite →]

Tags: IT · dev · fr · mail

Montrer son code par internet

02.07.2008 09:34 · Aucun Commentaire

Il nous arrive parfois de demander conseils pour des portions de code via internet.

http://pastie.org/ est très pratique dans ce cas, il permet d’y faire un copier-coller de la portion de code en indiquant son langage (C++, PHP, Ruby, CSS, HTML, Javascript…) et cela nous retourne une URL que l’on peut diffuser. Voici un exemple : http://pastie.org/225942

[Lire la suite →]

Tags: IT · dev · fr

Flash Festival

26.05.2008 14:21 · 3 Commentaires

Flash Festival 2008

Ayant besoin d’une excuse pour avancer le rodage de ma moto (l’autoroute à 80km/h ça va un temps ! vivement que les 1000km soient faits), je me suis rendu à Beaubourg (centre Pompidou) pour un festival sur le Flash. Les jeux présentés en flash étaient un pur plaisir :-) la conférence à laquelle j’ai assisté concernait plus les graphistes alors j’ai moyennement apprécié.

Celui qui m’a le plus marqué restera sans contestation possible Crayon Physics Deluxe. Le but est assez simple : attraper le drapeau avec la balle rouge. Pour bouger la balle, vous pouvez dessiner des objets qui vont interagir avec le décor suivant les lois de la physique. Vous pouvez aussi relier des objets entre eux à l’aide des chevilles.

Voici la vidéo :

[Lire la suite →]

Tags: IT · dev · fr

Upload rsync via ssh

19.05.2008 12:12 · 2 Commentaires

A chaque fois que je modifie un fichier php sur mon ordinateur (Mac OS X, donc avec rsync intégré), je lance un upload en sftp vers le serveur de dev pour voir le résultat (avec Filezilla). La manip est faite si souvent qu’il devient très rentable - et surtout beaucoup plus sûr - d’en faire un script.

La chance c’est que rsync fonctionne avec ssh, et j’ai toujours utilisé des systèmes de clé pour me connecter. Tout est donc déjà en place pour que la synchro fonctionne d’un simple click :

rsync -avz -e ssh --exclude "DS_Store" --exclude ".project" --exclude "Thumbs.db" --exclude ".svn" --exclude "*bak" --exclude "*~" /Users/chris/Documents/svn_projects/myproject/ chris@server.company.com:/var/www/mywebsite/
rsync -avz -e ssh --exclude "DS_Store" --exclude ".project" --exclude "Thumbs.db" --exclude ".svn" --exclude "*bak" --exclude "*~" LOCAL_PATH USER@SERVER:PATH

Il y a un article qui me semble bien pour avoir la procédure complète par ici : http://troy.jdmz.net/rsync/index.html

Mais s’il y a de la demande j’écrirais quelques lignes pour expliquer la connexion SSH via une clé au lieu d’un simple mot de passe.

[Lire la suite →]

Tags: IT · Server · apple · dev · fr · network