Mot-clé - fichiers

Fil des billets - Fil des commentaires

mardi, 4 août 2009

[awk] parser /etc/services

Je cherchais un moyen de mettre en forme un script qui interrogeais mon fichier /etc/services voila donc une petite ébauche. Ce script utilise la commande awk d'une façon primaire mais introduit une syntaxe relativement pratique au quotidien.
on distingue, dans notre cas, deux parties. La première délimitée par des // contient une occurrence que nous cherchons. il est à noter que ce champ supporte les expressions régulières et est donc hautement configurable en fonction de votre besoin.
La deuxième partie de la commande permet de mettre en forme la sortie de la commande.
Maintenant que nous avons vu un peu comment était constitué la sytanxe de la commande awk passons au script.

#!/bin/sh
 
# emplacement du fichier services
FILE="/etc/services"
 
# numéro du port ou nom du service
PORTNUMBER="$1"
 
awk '/\t'$1'\/|^'$1'/{print "service = "$1; print "port/type = "$2;$1 = "";$2 = "";print "Description = "$0;print ""}' $FILE

me reste a régler quelques petits truc mais ça fonctionne plutôt bien :

flopc sh # ./services_parser.sh ssh
service = ssh
port/type = 22/tcp
Description =   # SSH Remote Login Protocol

service = ssh
port/type = 22/udp
Description =  

flopc sh # ./services_parser.sh 21 
service = ftp
port/type = 21/tcp
Description =   # File Transfer [Control]

service = ftp
port/type = 21/udp
Description =   fsp fspd

Il est bien sûr évident que ceci ne constitue qu'une infime partie de la puissance d'awk qui est à lui seul un véritable langage de développement. En espérant que ce petit aperçu vous aura donné envie d'approfondir la connaissance de ce merveilleux outil.

liens connexes:

http://www.linux-pour-lesnuls.com/gawk.php
http://www.waterproof.fr/products/PHPEdit/manual/fr/module.FindRegExp.html
http://www.wagoneers.com/UNIX/AWK/awk.html
http://www.info.univ-angers.fr/aides/tutawk.html

dimanche, 18 janvier 2009

RAID logiciel : mdadm

En ce moment j'ai pour projet de mettre en œuvre une baie de disque offrant des services de haute disponibilité et de tolérance de panne avec notamment la mise en œuvre d'un RAID logiciel ( RAID5 au final ) ainsi qu'un bonding d'interfaces pour accroître les débits réseaux.

Lire la suite...

mardi, 21 octobre 2008

Tips & tricks

Tips & tricks supprimer les fichiers les plus gros d'un répertoire /// for i in `du -a /media/data | sort -n -r | head -n 20 | cut -d'/' -f2-`; do if [ ! -d /$i ]; then ls -l /$i;rm -i /$i; fi; done /// Suite au commentaire de lone wolf voici une commande beaucoup plus élégante /// find ./ -maxdepth 1 -type f -printf "%b\t%p\n" \ | sort -n -r | head -n 20 | cut -f 2 | xargs rm -v ///