Christophe Le Bot

  • Navigation rapide
Pratique de la conception numérique

Derniers commentaires

  • Une excellente thèse sur Simile Exhibit
    • Olivier Rossel | Bonjour. Malgre les annees, avez vous toujours en memoire vos usages d’Exhibit? Je serais ravi d’en discuter avec vous. Cordialement, Olivier Rossel.
  • Utiliser le planificateur de tâches OVH (crontab) avec PHP
    • Max | Bonjour, comme faire pour appeler une version de PHP qui n’est plus proposée par défaut dans le manager ? J’essaie de lancer un cron avec php 5.3 mais le log affiche No such file...
    • Christophe | @absolument Merci pour ces précisions. Je n’ai pas mis en place de tâches cron récemment, mais j’ai reçu quelques notifications étranges d’OVH il y a quelques...
  • Récupérer le dernier auto-incrément MySQL avec PHP
    • Thy | Sujet toujours *très* utile en 2015 ! Je réponds à Serge tsimba qui récupère un « Resource id ». (Et à tous ceux qui ont le même souci mais qui ne le disent pas) :)...
  • Régler l’heure de serveurs virtuels sous Debian
    • Ares_XL | Il semble que sur Débian la commande « tzconfig &ra quo; soit dépréciée et remplacée par : « dpkg-reconfigure tzdata » elle donne accès à une...
 

Archives
avril 2006

Graphical User Interface Gallery

Interface Apple II

Pour mesurer les progrès accomplis en matière d’ergonomie et d’aspect des interfaces, je vous conseille la Graphical User Interface Gallery. Vous y trouverez de nombreuses interfaces de systèmes d’exploitation.

Autre site sur le même sujet, mais au contenu bien plus riche : le GUIdebook. Outre les interfaces de systèmes d’exploitation, on y trouve aussi des interfaces d’applications, des comparateurs d’icônes et de sons, des « splash screens » (écrans de démarrage), etc.

Tutoriel sur les serveurs

Avec le projet « Tutoriel sur les serveurs » du site Linux-France, vous avez de quoi attraper une indigestion de lecture : c’est long, avec le look « geek Linux », mais quelle richesse !

Même si j’ai beaucoup de mal à lire cette prose dégoulinante à l’écran, j’y trouve souvent les petits détails qui règlent mes gros soucis !

Choisir des outils de test open source

OpensourceTesting

Inutile d’insister sur la nécessité des tests lors de développement applicatif, surtout dans le contexte de l’Extreme Programming où l’écriture des tests précède celle du code. Encore faut-il avoir de bons outils de test.

Opensourcetesting.org en répertorie une bonne quantité, avec actualité et forums en prime !

Vous aurez de quoi faire :

  • des tests unitaires
  • des tests de performances
  • des tests de bases de données
  • des tests de liens
  • des tests de sécurité
  • des tests unitaire en Ada, C/C++, HTML, Java, Javascript, .NET, Perl, PHP, Python, SQL, Tcl, XML, etc.

Tous n’y sont pas et certains ne sont plus à jour, mais la liste est longue et l’interface très efficace.

L’internet rapide et permanent

L’internet rapide et permanent

A l’occasion d’un petit nettoyage salutaire de mes archives, j’ai retrouvé une adresse un peu vite oubliée. Il s’agit du site « L’internet rapide et permanent » de Christian Caleca.

Au sommaire, des dossiers complets sur les réseaux, leur sécurité, les protocoles, les services les plus courants, les technologies de transmission, etc. La richesse et la clarté du contenu sont exemplaires.

Ce site est à classer dans les indispensables. Un grand merci à Christian Caleca pour cet excellent travail de pédagogie et de vulgarisation.

Régler l’heure de serveurs virtuels sous Debian

Quand des serveurs ont besoin de communiquer entre eux, il devient vite indispensable d’utiliser la même référence de temps. Cela semble évident mais, en pratique, ce petit détail est souvent négligé. Résultat : synchronisation de données défectueuses, résultats incohérents, documents écrasés par d’anciennes versions, fichiers de log illisibles… Que du bonheur !

Pourtant, mettre à l’heure un serveur est simple. Et quand le serveur accueille des serveurs virtuels ? Comme nous allons le voir, cela reste toujours simple !

Lire l’heure

L’heure d’un serveur sous Debian (comme sur d’autres distributions Linux) est gérée par la commande date. Sans paramètre, elle retourne la date et l’heure du système :

# date
mar avr 18 12:47:53 CEST 2006

On remarque au passage que le résultat est formaté selon les paramètres de localisation du système (ici en français pour l’heure locale de Paris).

Pour obtenir l’heure UTC, c’est-à-dire l’heure universelle ou heure de Greenwich, on ajoute le paramètre -u :

# date -u
mar avr 18 10:47:53 UTC 2006

On obtient bien un décalage de 2 heures par rapport à l’heure de Paris.

Modifier l’heure

Pour modifier l’heure, on utilise le paramètre --set :

# date --set 12:53:20

Et si la date n’est pas bonne, même remède :

# date --set 2006-05-18

Configuration du fuseau horaire

Si le fuseau horaire ne convient pas, inutile de réinstaller le système ! On utilise simplement la commande tzconfig et on répond aux questions :

# tzconfig
Your current time zone is set to Europe/Paris
Do you want to change that? [n]: y

Please enter the number of the geographic area in which you live:
[...]
Number: 8

[...]

Please enter the name of one of these cities or zones
[...]
Name: Paris
Your default time zone is set to 'Europe/Paris'.
Local time is now: mar avr 18 13:07:02 CEST 2006.
Universal Time is now: mar avr 18 11:07:02 UTC 2006.

Facile ! Pour information, la configuration du fuseau horaire est stockée dans le fichier /etc/timezone.

Temps système et temps BIOS

Tout semble parfait mais il y a un détail sournois : votre serveur gère deux références de temps, celle du système et celle de la carte-mère (horloge BIOS) ! Et elles peuvent très bien ne pas indiquer la même heure ! Dans certains cas, cette subtile différence peut avoir des conséquences agaçantes lors du redémarrage du serveur (par exemple, perte de l’heure système). Comme dit le proverbe, « l’homme qui a une montre sait l’heure qu’il est, celui qui en a deux n’est jamais sûr. »

Donc, autant régler une bonne fois pour toute l’heure matérielle avec la commande hwclock. Comme nous avons déjà réglé l’heure système, on utilise l’option --systohc pour la récupérer et --utc pour la définir en heure UTC :

# hwclock --systohc --utc

Synchronisation avec un serveur de temps

« Bon, tout est à l’heure, je passe à autre chose. »

Pas encore ! Car le quartz qui pilote l’oscillation de l’horloge de la carte-mère n’est jamais parfait. L’heure va donc se décaler petit à petit (parfois de plusieurs secondes par jour !). Heureusement, le protocole NTP (Network Time Protocol) vient à notre secours et offre la possibilité de synchroniser l’horloge du serveur avec un serveur de temps qui fait référence. Là encore, rien de bien méchant.

Il faut d’abord installer les paquets qui permettront d’utiliser NTP :

# apt-get install ntp-simple ntpdate

Puis, on configure NTP :

# vi /etc/ntp.conf

Concernant les serveurs NTP, choisissez sans hésiter ceux du projet pool.ntp.org qui optimisent les requêtes NTP par l’utilisation de clusters répartis dans le monde entier. Une rapide visite de ce site vous indiquera les serveurs NTP à utiliser dans votre zone géographique. Si votre serveur est en France, on ajoute donc les lignes suivantes dans ntp.conf :

server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org

Avant de mettre en place le démon qui synchronisera l’heure automatiquement, il faut le faire manuellement (ici, avec le serveur principal de pool.ntp.org) :

# ntpdate pool.ntp.org

Maintenant que l’heure système est bonne, reste à mettre à jour celle de l’horloge BIOS :

# hwclock --systohc --utc

Pourquoi choisir l’heure UTC ? Pour éviter de perdre l’heure si les serveurs NTP ne sont pas accessibles au redémarrage de votre serveur.

Il reste à charger nos modifications et la synchronisation automatique est en place :

# /etc/init.d/ntp-server restart

On termine par le redémarrage du serveur qui est obligatoire pour éviter quelques mauvaises surprises (par exemple, les tâches cron qui se déclenchent à l’heure UTC ou les fonctions de temps de PHP qui perdent deux heures…). Si le redémarrage n’est pas possible, il faut relancer tous les services actifs.

Si vous souhaitez mettre à jour l’heure manuellement, le paquet ntp-server n’est pas utile. Gardez simplement le paquet ntpdate et utilisez directement la commande ntpdate. Vous pouvez aussi désactiver le chargement du démon NTP au démarrage :

# update-rc.d ntp remove

Et pour le remettre en place :

# update-rc.d ntp defaults

Régler l’heure d’un serveur virtuel (vserver)

« Et les serveurs virtuels dans tout ça ? Faut-il faire toutes ces opérations pour chacun des 100 vservers installés sur ma machine ? »

Non, heureusement ! Pour que le système de fichiers fonctionne correctement, tous les vservers utilisent la même référence de temps, celle du serveur principal. On ne peut donc pas modifier l’heure d’un vserver. Par contre, un vserver peut avoir sa propre configuration de fuseau horaire, très utile pour proposer des services à des utilisateurs de zones géographiques différentes.

Comme nous l’avons vu plus haut, la commande tzconfig permet de définir le fuseau horaire pour calculer le décalage horaire entre l’heure UTC du serveur principal et celle du vserver. On remarque au passage la nécessité d’utiliser l’heure UTC comme référence de temps sur un serveur.

Les puristes (ou plutôt les administrateurs qui ont la responsabilité d’exploiter des serveurs de production en toute sécurité) se pencheront sur les nombreuses options de configuration de NTP : installation d’un serveur NTP local, filtrage des adresses IP, portée des requêtes, périodicité de la synchronisation, etc. A chacun sa cuisine !