Sommaire

Feb 19, 2015 - Nettoyage historique Quassel

Historique IRC avec Quassel et PostgreSQL

Contexte

IRC

IRC est un ancien protocole de chat, qui fonctionne, qui ne dépend pas des GAFA.

A la différence de certains systèmes de chat, il est possible de choisir un réseau IRC en sélectionnant un serveur IRC et ainsi accéder à des salons de discussion différents.

IRC est un système pour lequel la communication est par salon de discussion. C’est à dire qu’il y a potentiellement plusieurs personnes en même temps.

La communication entre deux personnes est possible.

Quassel

Quassel est un client IRC qui peut fonctionner de plusieurs façons différentes :

  • mode client simple
  • mode client-serveur

En mode client simple :

  • quassel se connecte au serveur IRC comme les autres clients IRC (xchat, mibbit)

  • quassel stocke l’historique des cannaux connectés en local sur le PC

En mode client-serveur :

  • quassel-client se connecte au quassel-serveur
  • quassel-serveur se connecte au serveur IRC
  • quassel-serveur stocke l’historique des cannaux connectés dans une base de données (sqlite par défaut, MySQL et PostgreSQL au choix)

Besoin

Après quelques mois de connexion continue à des cannaux IRC bien actifs, la base de donnée de stockage de l’historique est devenue imposante (= prend trops de place pour l’utilisation réelle de l’historique).

–> Il est donc temps de faire de la place faire du ménage.

Approches

Pour atteindre cet objectif, il existe plusieurs méthodes.

Solution n°1 : méthode douce

La plus simple est d’utiliser la fonction intégrée à quassel. Cette technique permet de supprimer des canaux ainsi que l’historique associé.

Lorque la base de données contient plusieurs millions d’enregistrements, la suppression de l’historique devient génante.

Dans ce scénario, nous avons constatés que quassel-serveur peut se bloquer, se déconnecter de tous les serveurs IRC et cela pour plusieurs heures.

Donc cette méthode est pratique pour les cannaux peux actifs, mais pas forcément acceptable pour nettoyer rapidement le serveur.

Solution n°2 : méthode forte

La seconde solution consiste à aller supprimer directement les données dans la base de données.

La base de données de quassel utilise un modèle de stockage de données plutôt simple.

Accès direct à la base de données

Statistiques sur les réseaux

SELECT count(*) as count__________, n.networkname, n.networkid
  FROM backlog
  NATURAL JOIN buffer buf
  NATURAL JOIN network n

  GROUP BY n.networkname, n.networkid
  ORDER BY count(*) DESC
  LIMIT 100;

Suppression de l’historique d’un réseau

Suppression des historiques rattaché au réseau identifié dans la base de données par 3.

-- Remove logs for all buffer for network 3

DELETE
  FROM backlog
  WHERE bufferid
    IN (
      SELECT bufferid
      FROM buffer
      WHERE networkid IN (3)
    );

Licence

logo creative common by-sa 3.0 Creative Commons Paternité – Partage à l’Identique 3.0 non transcrit

Feb 17, 2015 - Trucs et astuce Ms Project 2013

Trucs et astuce pour a peu près utiliser MS Projet 2013

Atteindre rapidement une date

Modes de planification

Pour faciliter la réalisation des plannings, il est conseillé de définir une planification automatique.

mode Automatique ou Manuel

Le paramètre par défaut se trouve dans Fichier > Options > Echéancier

Configuration Fichier > Options > Echéancier

Nommage WBS des tâches

Personnalisation du nommage

Définition des règles de nommage WBS

Temps & temps calendaire

Certaines tâches peuvent se dérouler sur une journée non travaillée. Ex: séchage naturel d’une pièce. Pour ce type de temps, il est possible d’indiquer que le temps à prendre en compte est de type calendaire.

Il apparait donc comme éc pour écoulé

Durée en jours calendaire

C’est le e qui permet de passer en durée écoulée/calendaire.

Liens entre tâches

Types de relations

Différents types de liens entre tâches

  • DD: Début à Début
  • FF: Fin à Fin
  • DF: Début à Fin <– il s’agit du mode le plus courant

Lien rapide de type Début à Fin

Lier rapidement plusieurs tâches

Chronologie

Afficher / Masquer

La chronologie permet d’afficher les éléments importants du projet.

Afficher la chronologie

Et de communiquer avec une vision synthétique

Exporter la chronologie

Configuration des éléments

Configurer la chronologie

Notes

Gestion des ressources

Lorsque l’on affecte trop de charge à une ressource, MS Project calcule automatiquement le nombre de ressources nécessaires pour y arriver. Il indique également une sur-utilisation (bonhomme rouge).

Vérification des disponibilités des ressources

Consultation des ressources en sur-utilisation

Utilisation de filtre pour accéder rapidement à l’information.

Pour savoir quand la ressource est trop utilisée

Il faut se placer au début du projet (touche “home”/”début de ligne”), car l’outil prend en compte la position courante dans le projet.

Cette commande positionne la vue sur la 1ère sur-utilisation de la ressource.

Affichage des ressources nécessaires selon MS Project

Outil de visualisation des Sur-utilisations

Solution pour régler les sur-utilisations

  • augmentation temporaire de capacité maximum (ajout de ressource) <- Si ressource générique
  • remplacer par une ressource disponible (affecter autre ressource) <- Si ressource nominative
  • modifier l’affectation -> change la durée de réalisation de la tâche
  • mettre des heures supplémentaires
  • nivellement

Affichage combiné

![](/assets/files/2015/02/21_visualisation_utilisation_combinee.png

Ajout d’heures supplémentaires

Nivellement

Il s’agit de décaler automatiquement des tâches pour lisser la charge.

Coût

Configuration

Il faut renseigner les coûts horaires des ressources.

Tâches avec coût particulier

Planning de référence

Courbes d’avancement

Cette courbe permet d’afficher rapidement les tâche qui n’ont pas été mises à jour dans le planning.

= toutes les tâches à gauche du traits sont en retard/ou non mise-à-jour.

Communication

Export du planning comme image

Exemple n°1

Exemple n°2 sur un projet plus long

Partage de ressource

Il s’agit de créer un ficher projet avec juste la définition des ressources, de leurs coûts et de leur calendriers

Champs personnalisés

Note : les styles d’affichage ne peuvent utiliser que des indicateurs. (= des champs personnalisés de type indicateur)

Licence

logo creative common by-sa 3.0 Creative Commons Paternité – Partage à l’Identique 3.0 non transcrit

Feb 9, 2015 - Outils pour débugger bind9, le serveur DNS

Déboggage de service DNS fourni par bind9

Note

Il n’est pas conseillé d’appliquer les commandes indiquées ici à un serveur hébergeant un nombre de zones important et/ou fortement utilisé.

En effet, dans le cadre d’une configuration simple, le temps de rechargement de bind est marginal. Cette affirmation est rapidement fausse lorsque la configuration du serveur devient importante.

Préliminaires

bind est un logicel assurant plusieurs services clef d’une infrastructure DNS. A savoir :

  • serveur faisant authorité = indique la vérité sur le contenu d’une zone désignée par un nom de domaine
  • résolveur, serveur récursif = parcours l’arborescence du DNS pour répondre à une demande

Le premier comportement sert à mettre à disposition une zone. Cela correspond à l’ensemble des informations qui peuvent être répondues par le serveur.

le second (résolveur) permet d’interroger les serveurs nécessaires à l’obtention d’une demande par l’utilisateur. C’est ce service qui est utilisé sur le poste de l’utilisateur, ou plus courament chez le FAI (Fournisseur d’Accès à Internet) de celui-ci, lorsqu’il cherche à contacter http://www.google.co.uk, http://www.facebook.com, http://www.free.fr et autre site.

  • Le navigateur web, demande au résolveur de résoudre (de transformer la chaine de texte en adresse IP) le nom de machine (www.google.co.uk, www.facebook.com, www.free.fr) afin de pouvoir établir la connexion.
  • le résolveur utilise son cache (une technique pour conserver en local des informations) pour répondre. En cas d’absence d’information dans le cache (première demande ou valeur expirée), le résolveur parcours l’arborescence du DNS en commençant par la racine . Puis dans les exemples : com., fr.et uk. et ainsi de suite jusqu’à obtenir une réponse (positive ou négative).

Problématique

Lorsque l’on héberge sa propre zone, typiquement pour servir son nom de domaine, il arrive que ça marche pas .

Le processus de débug peut être fastidieux et quelques outils sont fournis avec bind pour faciliter la correction des erreur.

  • un outil de vérification de la configuration : named-checkconf
  • un outil de vérification des zones : named-checkzone
  • un outil de gestion du serveur bind : rndc

Serveur faisant authorité, commandes pour le déboggage

Avant de changer la configuration il est conseillé de réaliser une sauvegarde des fichiers de configuration. Par exemple avec GIT avec un commit.

Pour la suite, considéront :

  • que le système est un Ubuntu 14.04
  • bind9 est installé par le gestionnaire de paquet
  • la configuration est dans le répertoire par défaut : /etc/bind
  • le nom de domaine servi est example.net, contenu dans le fichier de zone example.net.zone

Vérification de la configuration du serveur

Déplacement dans le bon répertoire et vérification du contenu :

$ cd /etc/bind
$ ls
 bind.keys
 db.0
 db.127
 db.255
 db.empty
 db.local
 db.root
 example.net.zone
 named.conf
 named.conf.default-zones
 named.conf.local
 named.conf.options
 rndc.key
 zones.rfc1918

On vérifie la configuration du serveur avec l’outil adapté :

$ named-checkconf -t named.conf

Si tout va bien, rien n’est indiqué.

En cas d’erreur (oubli d’un ; sur la ligne 13) :

$ named-checkconf -j named.conf
named.conf:13: missing ';' before 'logging'

Vérification de la configuration de la zone

On se place dans le même répertoire que le fichier de zone. Ici, /etc/bind.

$ named-checkzone example.net example.net.zone 
example.net.zone:2: no TTL specified; using SOA MINTTL instead
zone example.net/IN: sub.example.net/NS 'ns2.example.net' has no address records (A or AAAA)
zone example.net/IN: loaded serial 2014122301
OK

On peut constater que la zone est valide pour l’outil de vérification du fait de la présence du OK à la fin. C’est à dire qu’il n’y a pas d’erreur de syntaxe dans le fichier.

Par contre il y a deux erreurs de contenu qu’il faut corriger.

  • à la ligne 2, il manque la valeur du TTL
  • l’entrée sub.example.net utilise un serveur de nom, champ NS qui n’a pas d’adresse connue (ni IPv4 A, ni IPv6 AAAA)

A noter que l’utilisation de rndc ne pose pas de problème sur cette zone (pas de vérification du contenu):

$ rndc reload example.net

Vérification en tant qu’utilisateur

L’outil adapté pour vérifier les réponses d’un serveur DNS, que ce soit bind ou un autre d’ailleur s’appelle dig :

$ dig example.net

; <<>> DiG 9.8.1-P1 <<>> example.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47969
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;example.net.                   IN      A

;; ANSWER SECTION:
example.net.            86389   IN      A       93.184.216.34

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Feb  9 19:49:06 2015
;; MSG SIZE  rcvd: 45

Cette réponse :

  • indique que tout va bien : NOERROR. Un SERVFAIL est signe d’une erreur importante qui devrait être détectée avec les outils précédents.
  • la réponse à la question, section ANSWER donne l’adresse IPv4, A

Résolveur, commande usuelles de déboggage

Référence : bortzmeyer.org

  • vider le cache d’une zone
 $ rndc flushname example.net

Licence

logo creative common by-sa 3.0 Creative Commons Paternité – Partage à l’Identique 3.0 non transcrit

Feb 8, 2015 - Compression avec 7z

Aide mémoire sur les paramètres de 7z

L’outil 7z est un outil de compression :

  • libre
  • gratuit
  • multiplateforme (windows, gnu/linux, mac et probablement d’autres)
  • doté d’une interface graphique (clic-bouton)
  • doté d’une interface console (scripts)

Archivage par interface graphique

  • format de fichier : 7z
  • algorithme : LZMA2
  • niveau de compression : ultra
  • nombre de threads : autant que de coeurs processeurs réels

Archivage en console

7z a -t7z -m0=lzma2 -mx=9 -ms=on <output file>.7z <input files>

Licence

logo creative common by-sa 3.0 Creative Commons Paternité – Partage à l’Identique 3.0 non transcrit