unix

Archived posts from this Category

SMTP sortant : faire un trou noir avec Postfix

Posted by on 17 Jan 2011 | Tagged as: unix

Quand on gère un serveur SMTP sortant, il peut arriver que l'on souhaite filtrer totalement les messages émis à destination d'un domaine, tout en donnant l'impression à l'émetteur que le message est bien parti. C'est le cas par exemple quand une plate-forme de test souhaite émettre de nombreux messages pour tester ses capacités d'envoi.

Après avoir essayé différentes approches, la plus élégante à mes yeux est l'utilisation de transport_maps, qui permet de spécifier des relais particuliers en fonction de la destination.

Déclarons tout d'abord un tel fichier dans le main.cf de Postfix :

transport_maps = dbm:/etc/postfix/trounoir_map

Notez ici que l'utilisation de dbm est un choix de portabilité, j'ai déjà eu à faire ce type d'opération sur des versions de Postfix compilées sans pcre, par exemple.

Le fichier en question peut contenir des lignes du type :

exemple.fr     discard:silently

Puisque j'ai spécifié un type dbm, il faut générer les maps à partir du fichier texte :

# postmap -c /etc/postfix /etc/postfix/trounoir_map

Il ne reste plus qu'à redémarrer postfix, et les messages à destination du domaine exemple.fr génèreront des entrées de ce type (notez le discard au début de la ligne et le silently à la fin) :

postfix/discard[3923]: [ID 197553 mail.info] 8E816F5D: to=, relay=none, delay=13, delays=13/0/0/0, dsn=2.0.0, status=sent (silently)

Effacer un fichier au nom bizarre

Posted by on 09 Nov 2009 | Tagged as: unix

Il arrive sous Unix que l'on rencontre des fichiers aux noms inhabituels. Ces fichiers sont souvent le produit d'une erreur humaine (faute de frappe, erreur dans une commande), et on a parfois bien du mal à les effacer. Voici donc une petite solution toute simple qui devrait marcher dans tous les cas...

Continue Reading»

Scripting : forker pour une fonction interne

Posted by on 26 Oct 2009 | Tagged as: unix

Derrière ce titre un peu barbare (nos amis anglophobes me pardonneront, j'espère) se cache une question finalement très simple : dans un script, on sait que si chaque appel à une commande externe va générer un nouveau processus au niveau du système, ce n'est pas le cas pour les fonctions définies en interne dans le script. Or, on peut parfois souhaiter exécuter une telle fonction de manière séparée, par exemple à des fins de parallélisation. Continue Reading»