Skip to content

Linux Attitude

Le libre est un état d'esprit

Archive

Archive for April, 2007

Niveau :      
Résumé : trickle -d 100 lftp

Aujourd'hui nous allons parler de limitation volontaire de bande passante.

Lors de la création du protocole IP et d'internet, il n'a jamais été question de limiter le débit d'une communication. Chacun devait faire de son mieux pour gérer au plus vite les paquets de données qui lui sont envoyés. Le protocole IP n'ayant pas changé, c'est toujours le cas. Seule la personne qui envoie les données dispose d'un réel contrôle sur le débit. Bien entendu, il existe des moyens du côté des destinataires, mais ils ne sont pas "propres".

Les méthodes

Il est possible de limiter une bande passante au niveau du routeur ou de la machine elle-même grâce au noyau. Mais nous allons nous intéresser à la limitation au niveau de l'application. Certaines applications (comme openssh) implémentent cette fonctionnalité directement :

$ scp -l 100 moi@machine.net:~/backup.tgz ~/ #limitation du débit à 100ko/s

Mais avouez que c'est dommage d'avoir à réimplémenter ceci pour chaque commande que vous voulez utiliser. D'autant plus qu'il existe une roue que nous n'aurons pas à réinventer : trickle.

Trickle dispose de plusieurs options, les plus courantes sont -u (upload) et -d (download), et d'un paramètre : la commande à lancer.

# Lance lftp avec une limite de débit montant de 100ko/s et une limite de débit descendant de 500ko/s
$ trickle -u 100 -d 500 lftp

Principe de fonctionnement

Trickle utilise la notion de préchargement introduite avec les bibliothèques partagées (les .so). Il redéfinit les fonctions send et receive pour les sockets dans une nouvelle bibliothèque. Ces fonctions vont bien entendu changer de comportement de base et limiter les transferts.

Ensuite trickle précharge cette bibliothèque (utilisation de LD_PRELOAD pour les curieux). Ce qui fait que lorsque le programme va appeler une de ces fonctions les chargeur dynamique va appeler les fonctions de trickle en priorité.

Plus d'informations sur ce qu'il est possible de faire avec le chargeur dynamique (ld-linux sous linux) dans le man ld-linux.

Niveau :      
Résumé : apt-get install libpam-ssh && vi /etc/pam.d/...

Après avoir utilisé l'agent ssh et les clés, vous voulez aller plus loin.

pam_ssh avant

Je suis sur que vous utilisez régulièrement ssh. Chose embêtante, après chaque login vous devez retaper cette passphrase pour vous connecter. Bien sûr vous avez mis un ssh-askpass pour ne plus oublier de la taper, mais c'est un peu lourd.

Je vous propose donc d'entrer cette passphrase une seule fois directement au login. Elle remplacera votre mot de passe et enregistrera directement la clé dans l'agent. Comment faire ? Tout d'abord installez libpam-ssh avec la méthode que propose votre distrib favorite. Ensuite, il vous faut choisir pour quels type de login vous voulez ceci. La liste se trouve dans /etc/pam.d Il est probable que vous le vouliez pour kdm ou gdm mais pas pour les autres. Dans ce cas éditez le fichier en question, il doit ressembler à quelque chose comme ceci :

#%PAM-1.0
auth    requisite       pam_nologin.so
auth    required        pam_env.so readenv=1
auth    required        pam_env.so readenv=1 envfile=/etc/default/locale
@include pam-ssh-auth
@include common-auth
@include common-account
session required        pam_limits.so
@include pam-ssh-session
@include common-session
@include common-password

continue reading...

Niveau :      
Résumé : dsh -g cluster "echo Bonjour"

Avez-vous déjà eu à lancer la même commande sur plusieurs machines ? Si oui, cet article est fait pour vous. Regardez aussi cet autre article d'ebzao.

dsh.png

Konsole

Tout d'abord, le premier outil, bien sympathique si vous avez peu de machines et si vous voulez lancer une commande interactive (par exemple vi).

Le terminal de kde "konsole" dispose d'une fonction bien utile qui est la diffusion de l'entrée utilisateur à toutes les sessions.

Pour lancer une commande sur plusieurs machines, ouvrez plusieurs onglets dans konsole, sur chaque onglet connectez-vous à une machine. Puis mettez-vous sur le premier onglet et sélectionnez "diffusion de l'entrée à toutes les sessions" dans le menu "Affichage".


continue reading...