Catégories
Uncategorized

Mise à jour d’un fichier d’alias

Dans cet article, je montre comment tester le resultat d’une commande sous bash, à utiliser à l’interieur d’un if par exemple.

Context : je m’en sert ici pour mettre à jour un fichier d’alias (addresses e-mail). Si l’addresse ne figure pas déjà dans le fichier, l’ajouter.

1/ On cherche toutes les boites qui sont dans la base de données (searchmailbox.sql est un simple script bash qui cherche des e-mails dans la base de données)

root@messagerie-secours[CHROOT]10.10.10.19 ~/SCRIPTS/MAIL # ./searchmailbox.sql @mydomain.tld | awk ‘{print $2}’

sdg.eprs@mydomain.tld
chabane.lounakel@mydomain.tld
n.chabi@mydomain.tld
saad.taraf@mydomain.tld
mustafa.benaoumeur@mydomain.tld
djilali.merad@mydomain.tld
abdelmadjid.aissa@mydomain.tld
root@messagerie-secours[CHROOT]10.10.10.19 ~/SCRIPTS/MAIL #

On peut rediriger vers un fichier temporaire pour enlever les lignes vides et les titres des colonnes (e-mail / name).

2/ Ensuite, il faut chercher chaque boite dans le fichier alias et ne lister que celles qui ne sont pas trouvées.

root@messagerie-secours[CHROOT]10.10.10.19 ~/SCRIPTS/MAIL # while read -r box; do if ! grep -q $box /etc/postfix/maps/global; then echo $box; fi; done < /tmp/allboxes
postmaster@mydomain.tld
ms.saidi@mydomain.tld
chadly-disabled@mydomain.tld
pf-admin@mydomain.tld
arch-admin@mydomain.tld
it-m.a.m@mydomain.tld
z.timtaoucine@mydomain.tld
m.stefan-disabled@mydomain.tld
ntp@mydomain.tld
it-helpdesk@mydomain.tld
owncloud@mydomain.tld
meteo@mydomain.tld
it_support@mydomain.tld
application@mydomain.tld
it-sys@mydomain.tld
panarab@mydomain.tld
saad.taraf@mydomain.tld
mustafa.benaoumeur@mydomain.tld
djilali.merad@mydomain.tld
abdelmadjid.aissa@mydomain.tld
root@messagerie-secours[CHROOT]10.10.10.19 ~/SCRIPTS/MAIL #

Il y a donc, depuis la dernière fois que j’ai mis à jour l’alias, quelques nouvelles boites, judicieusement mises à la fin, sans doute à cause de leur ordre d’insertion dans la base de données. Je n’ai plus qu’à les ajouter à mon fichier global.

 

Catégories
Uncategorized

Sur les bienfaits de la colonisation

Avant la colonisation :

ychaouche@ychaouche-PC 11:24:18 ~ $ apt-cache search libqt5 --names-only | head
libqt53d5 - Qt 3D module
libqt5clucene5 - Qt 5 CLucene module
libqt5concurrent5 - Qt 5 concurrent module
libqt5contacts5 - Qt PIM module, Contacts library
libqt5core5a - Qt 5 core module
libqt5dbus5 - Qt 5 D-Bus module
libqt5designer5 - Qt 5 designer module
libqt5designercomponents5 - Qt 5 Designer components module
libqt5feedback5 - Qt Feedback module
libqt5gui5 - Qt 5 GUI module
ychaouche@ychaouche-PC 11:29:07 ~ $

Après la colonisation :

ychaouche@ychaouche-PC 11:29:07 ~ $ apt-cache search libqt5 --names-only | head | sed 's/ - /%/' | column -t -s %
libqt53d5                  Qt 3D module
libqt5clucene5             Qt 5 CLucene module
libqt5concurrent5          Qt 5 concurrent module
libqt5contacts5            Qt PIM module, Contacts library
libqt5core5a               Qt 5 core module
libqt5dbus5                Qt 5 D-Bus module
libqt5designer5            Qt 5 designer module
libqt5designercomponents5  Qt 5 Designer components module
libqt5feedback5            Qt Feedback module
libqt5gui5                 Qt 5 GUI module
ychaouche@ychaouche-PC 11:29:46 ~ $

Comment ça marche ce truc :

Je remarque que les noms de paquets et les descriptions sont séparées par ‘ – ‘. Malheureusement, la commande column ne prend qu’un seul character de séparation, ce qui fait que si ‘-‘ est présent ailleurs, il va me mettre la pagaille dans l’affichage :

ychaouche@ychaouche-PC 11:32:37 ~ $ apt-cache search libqt5 --names-only | head | column -t -s -
libqt53d5                    Qt 3D module
libqt5clucene5               Qt 5 CLucene module
libqt5concurrent5            Qt 5 concurrent module
libqt5contacts5              Qt PIM module, Contacts library
libqt5core5a                 Qt 5 core module
libqt5dbus5                  Qt 5 D                           Bus module
libqt5designer5              Qt 5 designer module
libqt5designercomponents5    Qt 5 Designer components module
libqt5feedback5              Qt Feedback module
libqt5gui5                   Qt 5 GUI module
ychaouche@ychaouche-PC 11:32:40 ~ $

On remarque que D-Bus a été décortiqué en D                 Bus, ce qu’on ne veut pas.

Ce qu’il faudrait s’est prendre tout ‘ – ‘ (espace tiret espace) comme séparateur mais impossible de faire ça va column.

Solution : remplacer ‘ – ‘ par un seul caractère qui n’est pas du tout utilisé ni dans les noms ni dans les descriptions. Sans trop me casser la tête j’ai pris ‘%’ mais ça pourrait être tout autre chose encore plus rare.

J’utilise sed pour m’aider à réaliser cette substitution (la commande s pour substitute)

ychaouche@ychaouche-PC 11:32:40 ~ $ apt-cache search libqt5 --names-only | head | sed 's/ - /%/'
libqt53d5%Qt 3D module
libqt5clucene5%Qt 5 CLucene module
libqt5concurrent5%Qt 5 concurrent module
libqt5contacts5%Qt PIM module, Contacts library
libqt5core5a%Qt 5 core module
libqt5dbus5%Qt 5 D-Bus module
libqt5designer5%Qt 5 designer module
libqt5designercomponents5%Qt 5 Designer components module
libqt5feedback5%Qt Feedback module
libqt5gui5%Qt 5 GUI module
ychaouche@ychaouche-PC 11:34:50 ~ $

On remarque que par exemple le – de D-BUS a bien été sauvegardé.

On essaye de nouveau :

ychaouche@ychaouche-PC 11:34:50 ~ $ apt-cache search libqt5 --names-only | head | sed 's/ - /%/' | column -t -s %
libqt53d5                  Qt 3D module
libqt5clucene5             Qt 5 CLucene module
libqt5concurrent5          Qt 5 concurrent module
libqt5contacts5            Qt PIM module, Contacts library
libqt5core5a               Qt 5 core module
libqt5dbus5                Qt 5 D-Bus module
libqt5designer5            Qt 5 designer module
libqt5designercomponents5  Qt 5 Designer components module
libqt5feedback5            Qt Feedback module
libqt5gui5                 Qt 5 GUI module
ychaouche@ychaouche-PC 11:35:44 ~ $

àlà.

Catégories
Uncategorized

Batch thumbnail creation from the command line

for file in 100_029* 100_03*; do convert $file -resize 25% resized/$file; done;
Catégories
Uncategorized

Supprimer les 10 premières secondes d’un fichier mp3

sudo apt-get install poc-streamer
mp3cut -o trim.mp3 -t 00:10  PasaPas_ParisCombo.mp3

Le fichier trim.mp3 ne contiendra pas les 10 secondes de blanc du fichier PasaPas_ParisCombo.mp3