Comme j’annonçais précédemment, je contribue deux machines NetBSD à la
BuildFarm de PostgreSQL. La compilation ne se fait automagiquement
qu’après la configuration du client (écrit en Perl). Il n’est d’ailleurs
pas forcément très convi à installer, c’est pourquoi je l’ai packagé
pour pkgsrc : http://pkgsrc.se/wip/pgbuildfarm.
On peut parfois trouver cet étrange message d’erreur dans les traces de PostgreSQL (N étant un nombre) ou lors de l’exécution d’une requête :
ERROR: could not open relation with OID N Si on recherche ce message dans les mailing-lists du projet, on peut facilement conclure que la base de données est corrompue, qu’il y a des problèmes matériels et que la sécurité des données est en péril. Et bien, ce n’est pas forcément le cas : obtenir ce message peut être tout à fait normal.
Sur mon serveur chez OVH, j’ai un ensemble de machines virtuelles KVM et (bientôt) de conteneurs LXC. Pour fournir du réseau à tout ce petit monde, j’utilise de l’IPv4 et de l’IPv6, voici comment c’est configuré.
Pour l’IPv4, on a un nombre limité d’IP publiques parce que ça vaut de la thune et que ça va être de plus en tendu de multiplier les adresses, il nous faut un réseau privé (beurk), du NAT (rebeurk) et des redirections à base d’iptables (re-rebeurk).
Comme je viens d’investir dans un serveur kimsufi (le 16G), je me suis dis qu’avoir
quelques machines NetBSD pour servir la bonne cause ça serait bien cool.
Pour rediriger stdout/stderr à l’interieur vers l’entrée standard d’un commande, il faut utiliser exec et du sous-shell. Cette astuce est un bashisme a priori.
L’objectif est de renvoyer tous les messages du script dans syslog sans mettre de redirection sur la ligne de commande. Le principe général est :
exec FD> >(COMMAND) FD est le numéro du file descriptor, 1 pour stdout, 2 pour stderr COMMAND est la commande a exécuter, elle doit bien sûr lire les données en entrée.
Pour combiner des pdf en un seul, on peut essayer pdfjoin fournit par le projet pdfjam. En attendant que les 250 Mo de dépendances (Latex principalement) s’installent, on peut utiliser ghostscript :
gs -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH -sOutputFile=../combined_doc.pdf *.pdf Merci à perlmonks.org.
Ici encore, tout est dans le catalogue système de PostgreSQL, il suffit
de regarder dans la table pg_trigger
.
Il y a longtemps que je me demandais comment faire ça, sans prendre la peine de rechercher ou lire le man. C’est chose faite, pour insérer une tabulation, il faut contourner la complétion de commandes avec le combo suivant :
C-v TAB C’est simple, mais ça ne s’invente pas.
Pour le coup, c’est utile quand on veut voir un fichier de configuration sans les commentaires, par exemple postgresql.conf :
Dans le catalogue de PostgreSQL, qui donne plein d’information sur le
cluster et la base de données, la table pg_class
regroupe les
informations sur les tables, les séquences, les index, tout ce qui
contient des colonnes, appelé relation. L’un des champs disponibles est
reltuples
, il contient le nombre approximatif de lignes dans une
relation. C’est approximatif, ainsi ce n’est pas un donnée sure… La
preuve par l’exemple.
Comme indiqué dans d’autres posts, j’abuse des chroots pkg_comp
pour
tenir mes paquets à jour. Je suis récemment passé à l’utilisation de
pkgin
pour la gestion de mes paquets une fois préparés dans le chroot.