Aller à la recherche

Des Logiciels Libres

Pour parler de Logiciels Libres en milieu professionnel... ou pas!

dimanche, janvier 16 2011 15:06

Création d'un fichier swap

Un espace de swap est utilisé sous Linux quand il n'y a plus ou pas assez d'espace en mémoire vive. Il est donc important mais pas obligatoire d'en avoir un. Il est d'usage d'avoir au moins une partition de type swap, mais il est tout à fait possible de s'en passer ou d'en avoir plusieurs.

Dans certains cas, comme un besoin temporaire de swap, des tests, un manque de place pour ajouter une partition swap dédiée, ou un bête oubli lors de l'installation, nous pouvons être amener à créer un fichier de swap, plutôt qu'une partition.

Création du fichier

La création du fichier peut se faire avec l'outil dd, en ligne de commande, afin de définir une taille, prenons par exemple 512Mo:

dd if=/dev/zero of=/swap bs=1M count=512

A l'issue de cette commande, nous aurons un fichier /swap de 512Mo rempli de zéros.

Formatage du fichier

La swap utilise son propre système de fichier, simplifié et adapté à la gestion de données en mémoire. Notre fichier /swap doit donc être formaté et marqué pour être identifié comme espace swap:

mkswap /swap

Montage du fichier

Nous pouvons maintenant utiliser ce fichier directement à chaud avec la commande suivante:

swapon /swap

A l'inverse pour l'arrêter:

swapoff /swap

Pour vérifier que cette nouvelle swap est bien utilisée nous pouvons utiliser plusieurs commandes:

free
swapon -s

Ajout dans fstab

Pour utiliser ce fichier de swap de manière plus permanente (c'est à dire même après un redemarrage), il faut l'ajouter dans /etc/fstab. Il suffit d'y ajouter la ligne:

/swap swap swap defaults 0 0

Avec ça, au prochain reboot, le fichier /swap sera monté en swap, il est de type swap et utilisera les options par défaut.

mardi, octobre 12 2010 14:57

Rechercher une adresse MAC avec grep

Pratique de pouvoir rechercher ou valider une adresse MAC avec une commande shell, et comme grep supporte très bien les expressions régulières cela est même facile à utiliser.

Pour construire notre expression régulière, il faut réfléchir sur ce que nous cherchons. Une adresse mac est toujours représentée comme suit: XX:XX:XX:XX:XX:XX soit 6 champs de 2 caractères. Mais il y a le séparateur ":" que nous devons aussi prendre en compte. Le plus simple est de ce dire que nous cherchons en fait 5 blocs de 2 caractères suivit du ":" avec à la fin un bloc de 2 caractères.

Concernant les caractères constituant nos blocs, vu qu'il s'agit en fait d'une notation hexadécimale, il faut aussi en tenir compte. Pas la peine par exemple de rechercher toute lettre de l'alphabet, l'hexadécimal s'arrête à F. Nous pouvons aussi avoir des chiffres de 0 à 9. Pour signifier en expression régulière que nous recherchons des chiffres de 0 à 9 il faut utiliser la syntaxe suivante:

[0-9]

Pour les lettres de A à F celle-ci:

[A-F]

Il suffit de mélanger les 2 pour avoir la plage hexadécimale de 0 à F, et nous allons rajouter les minuscules, ce qui donne:

[0-9a-fA-F]

Cette expression donne un résultat dès qu'elle tombe sur un chiffre de 0 à 9, ou 1 lettre de a à f, ou 1 lettre de A à F. C'est déjà un bon début.

Pour indiquer dans une expression régulière le nombre d'occurrence que nous recherchons, il suffit de préciser ce nombre entre accolade. Nos blocs sont toujours constitués de 2 caractères, donc:

[0-9a-fA-F]{2}

Il nous manque plus que le séparateur ":" qui est un caractère spéciaux en expression régulière, il faut donc l'échapper avec \. Notre premier bloc sera donc:

[0-9a-fA-F]{2}\:

Ce premier bloc dans une adresse mac est présent 5 fois, nous allons donc dire que tout ce bloc doit être vu 5 fois de suite. Pour délimiter un bloc, il faut utiliser les parenthèses:

([0-9a-fA-F]{2}\:){5}

Nous terminons avec le dernier bloc, qui est en fait similaire au premier mais sans le séparateur:

([0-9a-fA-F]{2}

L'expression régulière complète est donc:

([0-9a-fA-F]{2}\:){5}[0-9a-fA-F]{2}

Nous pouvons la tester avec grep et l'option -E ou directement avec la commande egrep. Par exemple sur les fichiers de configuration réseau d'une Fedora:

cd /etc/sysconfig/network-scripts/
egrep -ho "([0-9a-fA-F]{2}\:){5}[0-9a-fA-F]{2}" ifcfg-eth*

options: -h pour ne pas indiquer le nom du fichier et -o pour n'afficher que ce qui correspond au résultat et non toute la ligne complète

dimanche, août 22 2010 21:15

Bash plus intelligent?

Il est possible de rendre bash plus intelligent, en permettant le complètement des commandes (completion en anglais) jusque dans leurs arguments, du moins pour certaines. Pour cela il faut installer le logiciel bash-completion. Le paquet pour Fedora est bien adapté aux commandes Fedora ce qui le rend très utile. Il n'y a rien de magique, ce n'est pas non plus de l'introspection dynamique, bash-completion repose sur une sorte de base de données qui référence les commandes et leurs arguments.

Enfin bref, pour l'installer, sous Fedora, il suffit de taper la commande suivante:

yum install bash-completion

Pour l'activer sans avoir à se deloguer:

source /etc/bash-completion

Voici des exemples surpuissants que vous pouvez vous aussi utiliser chez vous:

ser[tab] ht[tab] res[tab] => service httpd restart
yu[tab] ins[tab] ligh[tab] => yum install lighttpd

Et oui encore un truc de faignasse d'admin :)

Une dernière petite astuce pratique, toujours sur la completion. Qui n'a jamais tapé trop vite au clavier un chemin, par ex "/Etc" au lieu de "/etc" à cause de la touche shift pour faire le "/"? Et bien il est possible de rendre insensible à la casse le complètement des commandes et chemins sous Bash. Pour cela il faut éditer le fichier "/etc/inputrc" pour imposer ce réglage de manière globale ou sinon "~/.inputrc" pour votre utilisateur seulement et ajouter une ligne (à la fin par exemple):

set completion-ignore-case on

Il faut se déloguer par contre, a moins que quelqu'un connaisse l'astuce pour faire relire ce fichier par bash. Pour vérifier que ça marche:

cd /E[tab] => cd /etc

Et voilà :)

vendredi, janvier 9 2009 17:34

Raccourcis Bash bien pratiques

Quelques raccourcis clavier indispensables.

Lire la suite...