Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
15 juin 2013

htmlpdflatexmanmd




cgclassify

cgclassify

Déplace un tâche dans le cgroup donné

OPTIONS

-g ‹controllers›:‹path› Définis le cgroup où placer la tâche
--sticky Avec cette option, cgred ne change pas les tâches enfant avec les droits du cgroups basé dans cgrules.conf
--cancel-sticky cgred peut automatiquement changer le pidlot et leur tâche enfant dansle bon cgroup basé sur /etc/cgrules.conf
^
15 juin 2013

htmlpdflatexmanmd




cgclear

cgclear

Décharge un système de fichier cgroup

   sans options, place toutes les tâche dans les cgroups dans le cgroup root

OPTIONS

-l, --load=‹filename› Spécifie le fihcier de config à lire. Peut être spécifié plusieurs fois
-L, --load-directory=‹directory› Spécifie le répertoire qui est recherché dans les fihciers de configuration. Peut être spécifié plusieurs fois
-e  Seul les cgroups vides sont déchargés
^
15 juin 2013

htmlpdflatexmanmd




cgconfig.conf

cgconfig.conf

Fichier de configuration utilisé par libcgroup

   Fichier de configuration utilisé par libcgroup pour définir les cgroups, leur paramètres et leur points de montage. Il consiste de sections mount, group et default.

la section mount a la forme:
mount {
    ‹controller› = ‹path›
    ...
}

   où controller est le nom du sous-système. Une hiérarchie nommée peut être spécifiée comme contrôleur avec "name=‹somename›". path, le chemin où la hiérarchie cgroup associée devrait être montée.

La section group a la forme:
group ‹name› {
    [permissions]
    ‹controller› {
        ‹param name› = ‹param value›
        ...
    }
...
}

name Nom du cgroup. le cgroup root est toujours créé automatiquement. Il peut être spécifié dans ce fichier de configuration en utilisant '.' comme nom de cgroup
permissions Les permissions du cgroup. root a toujous les permissions de faire tout avec les cgroups Ils ont la syntaxe suivante:


perm {
    task {
        uid = ‹task user›
        gid = ‹task group›
        fperm = ‹file permissions›
    }
    admin {
        uid = ‹admin name›
        gid = ‹admin group›
        dperm = ‹directory permissions›
        fperm = ‹file permissions›
    }
}

task user/group Nom de l'utilisateur et du group propriétaire du fichier tasks du cgroup
admin user/group Nom de l'utilisateur et du group propriétaire des autres fichiers du cgroup
controller Nom du sous-sytème kernel. Permet de spécifier le nom du fichier à définir et sa valeur

La section default a la forme:
default {
    perm {
        task {
            uid = ‹task user›
            gid = ‹task group›
            fperm = ‹file permissions›
        }
        admin {
            uid = ‹admin name›
            gid = ‹admin group›
            dperm = ‹directory permissions›
            fperm = ‹file permissions›
        }
    }
}

   Cette section a la même forme que la section group

Exemples

Exemple 1:
mount {
    cpu = /mnt/cgroups/cpu;
    cpuacct = /mnt/cgroups/cpu;
}

Créé la hiérarchie contrôlée par 2 sous-sytèmes. Correspond à:
mkdir /mnt/cgroups/cpu
mount -t cgroup -o cpu,cpuacct cpu /mnt/cgroups/cpu

Exemple 2:
mount {
    cpu = /mnt/cgroups/cpu;
    "name=scheduler" = /mnt/cgroups/cpu;
    "name=noctrl" = /mnt/cgroups/noctrl;
}
group daemons {
    cpu {
        cpu.shares = "1000";
    }
}
group test {
    "name=noctrl" {
    }
}

Créé 2 hiérarchies. une 'scheduler' contrôlée par le sous-système cpu avec le group daemons en enfant. L'autre est nommée noctrl sans contrôleur, avec un groupe test. Correspond à:
mkdir /mnt/cgroups/cpu
mount -t cgroup -o cpu,name=scheduler cpu /mnt/cgroups/cpu
mount -t cgroup -o none,name=noctrl none /mnt/cgroups/noctrl
mkdir /mnt/cgroups/cpu/daemons
echo 1000 › /mnt/cgroups/cpu/daemons/www/cpu.shares
mkdir /mnt/cgroups/noctrl/tests

Exemple 3:
    mount {
    cpu = /mnt/cgroups/cpu;
    cpuacct = /mnt/cgroups/cpu;
}
    
group daemons/www {
    perm {
        task {
            uid = root;
            gid = webmaster;
            fperm = 770;
        }
        admin {
            uid = root;
            gid = root;
            dperm = 775;
            fperm = 744;
        }
    }
    cpu {
        cpu.shares = "1000";
    }
}
    
group daemons/ftp {
    perm {
        task {
            uid = root;
            gid = ftpmaster;
            fperm = 774;
        }
        admin {
            uid = root;
            gid = root;
            dperm = 755;
            fperm = 700;
        }
    }
    cpu {
        cpu.shares = "500";
    }
}

Créer la hiérarchie contrôllée par 2 sous-système avec un group et 2 sous-groupes. Correspond à:
mkdir /mnt/cgroups/cpu
mount -t cgroup -o cpu,cpuacct cpu /mnt/cgroups/cpu
mkdir /mnt/cgroups/cpu/daemons
mkdir /mnt/cgroups/cpu/daemons/www
chown root:root /mnt/cgroups/cpu/daemons/www/*
chown root:webmaster /mnt/cgroups/cpu/daemons/www/tasks
echo 1000 › /mnt/cgroups/cpu/daemons/www/cpu.shares
mkdir /mnt/cgroups/cpu/daemons/ftp
chown root:root /mnt/cgroups/cpu/daemons/ftp/*
chown root:ftpmaster /mnt/cgroups/cpu/daemons/ftp/tasks
echo 500 › /mnt/cgroups/cpu/daemons/ftp/cpu.shares

Exemple 4:
mount {
    cpu = /mnt/cgroups/cpu;
    cpuacct = /mnt/cgroups/cpuacct;
    }
    
group daemons {
    cpuacct{
    }
    cpu {
    }
}

Créé 2 hiérarchies et un group commun Correspond à:
mkdir /mnt/cgroups/cpu
mkdir /mnt/cgroups/cpuacct
mount -t cgroup -o cpu cpu /mnt/cgroups/cpu
mount -t cgroup -o cpuacct cpuacct /mnt/cgroups/cpuacct
mkdir /mnt/cgroups/cpu/daemons
mkdir /mnt/cgroups/cpuacct/daemons

Exemple 5:
mount {
    cpu = /mnt/cgroups/cpu;
    cpuacct = /mnt/cgroups/cpuacct;
}
    
group daemons {
    cpuacct{
    }
}
    
group daemons/www {
    cpu {
        cpu.shares = "1000";
    }
}
    
group daemons/ftp {
    cpu {
        cpu.shares = "500";
    }
}

Créé 2 hiérarchies avec quelqes groupes dedans. un de ces groupes est créé dans les 2 hiérarchies. Correspond à:
mkdir /mnt/cgroups/cpu
mkdir /mnt/cgroups/cpuacct
mount -t cgroup -o cpu cpu /mnt/cgroups/cpu
mount -t cgroup -o cpuacct cpuacct /mnt/cgroups/cpuacct
mkdir /mnt/cgroups/cpuacct/daemons
mkdir /mnt/cgroups/cpu/daemons
mkdir /mnt/cgroups/cpu/daemons/www
echo 1000 › /mnt/cgroups/cpu/daemons/www/cpu.shares
mkdir /mnt/cgroups/cpu/daemons/ftp
echo 500 › /mnt/cgroups/cpu/daemons/ftp/cpu.shares

Exemple 6:
mount {
    cpu = /mnt/cgroups/cpu;
    cpuacct = /mnt/cgroups/cpu;
}
    
group . {
    perm {
        task {
            uid = root;
            gid = operator;
        }
        admin {
            uid = root;
            gid = operator;
        }
    }
    cpu {
    }
}
    
group daemons {
    perm {
        task {
            uid = root;
            gid = daemonmaster;
        }
        admin {
            uid = root;
            gid = operator;
        }
    }
    cpu {
    }
}

Créé la hiérarchie contrôlée par 2 sous-sytèmes avec un groupe ayant des permissions spéciales. Correspond à:
mkdir /mnt/cgroups/cpu
mount -t cgroup -o cpu,cpuacct cpu /mnt/cgroups/cpu
chown root:operator /mnt/cgroups/cpu/*
chown root:operator /mnt/cgroups/cpu/tasks
mkdir /mnt/cgroups/cpu/daemons
chown root:operator /mnt/cgroups/cpu/daemons/*
chown root:daemonmaster /mnt/cgroups/cpu/daemons/tasks
^
15 juin 2013

htmlpdflatexmanmd




cgconfigparser

cgconfigparser

Définis le système de fichier de cgroup

OPTIONS

-l, --load=FILE Parse le fichier de configuration des cgroups définis le système de fichier du cgroup et monte les points de montage définis. Peut être spécifié plusieurs fois
-L, --load-directory=DIR Trouve tous les fichiers dans un répertoire et les parses dans l'ordre alphabétique. Peut être spécifié plusieurs fois
-a ‹agid›:‹auid› Définis le propriétaire par défaut des fichiers de cgroup définis. Ces utilisateurs sont autorisés à définir les paramètres du sous-système et créer des cgroups
-d, --dperm=mode Définis les permissions par défaut d'un répertoire cgroup
-f, --fperm=mode définis les permissinos par défaut des fichiers du cgroup
-s, --tperm=mode Définis les permissions par défaut du fichier tasks du cgroup
-t ‹tuid›:‹tgid› Définis le propriétaire du fichier tasks du cgroup
^
15 juin 2013

htmlpdflatexmanmd




cgcreate

cgcreate

Créer de nouveaux cgroups

OPTIONS

-a ‹agid›:‹auid› Définie le nom de l'utilisateur et du groupe propriétaire des fichiers de contrôle.
-d, --dperm=mode définisles permissions du répertoire cgroup.
-f, --fperm=mode Définis les permissions des paramètres du cgroup
-g ‹controllers›:‹path› Définis les cgroups à ajouter controllers est une liste de contrôleurs, et path le chemin relatif au cgroup dans la liste des contrôleurs donnés. Peut être spécifié plusieurs fois
-s, --tperm=mode Définis lespermissions du fichier tasks du cgroup
-t ‹tuid›:‹tgid› Définis le propriétaire et le groupe propriétaire du fichier tasks
^
15 juin 2013

htmlpdflatexmanmd




cgdelete

cgdelete

Supprime des cgroups

OPTIONS

‹controllers›:‹path› Définis le cgroup et ses enfants à supprimer
-r Supprime récursivement
^
15 juin 2013

htmlpdflatexmanmd




cgexec

cgexec

Lance la tâche dans le cgroup donné

OPTIONS

-g ‹controllers›:‹path› Définis le cgroup dans lequel la tâche va se lancer.
--sticky Avec cette option, cgred ne change pas les tâches enfant avec les droits du cgroups basé dans cgrules.conf

Exemples

lance ls dans le cgroup test1 dans tous les contrôleurs montés
cgexec -g *:test1 ls
Lance ls -l dans le cgroup test1 dans les contrôleurs cpu et memory
cgexec -g cpu,memory:test1 ls -l
lance ls -l dans le cgroup test1 dans les contrôleurs cpu et memory et le cgroup test1 dans le contrôleur swap
cgexec -g cpu,memory:test1 -g swap:test2 ls -l
^
15 juin 2013

htmlpdflatexmanmd




cgget

cgget

Affiche les paramètres des cgroups donnés

OPTIONS

‹path› Le nom du cgroup à lire.Peut être spécifié plusieurs fois
-a, --all Affiche les variables de tous les contrôleurs.
-g ‹controller› Défnis le contrôleur dont la valeur est à afficher
N'affiche pas les en-têtes
-r, --variable ‹name› Paramètre à afficher. Peut être spécifié plusieurs fois
-v, --values-only Affiche seulement les valeurs.

Exemples

cgget -r cpuset.cpus -r cpuset.mems first second
first:
cpuset.cpus=0-1
cpuset.mems=0
second:
cpuset.cpus=0
cpuset.mems=0
cgget -n -r cpuset.cpus -r cpuset.mems first second
cpuset.cpus=0-1
cpuset.mems=0
cpuset.cpus=0
cpuset.mems=0
cgget -nv -r cpuset.cpus -r cpuset.mems first second
0-1
0
0
0
cgget -n -g cpu /
cpu.rt_period_us=1000000
cpu.rt_runtime_us=950000
cpu.shares=1024
^
15 juin 2013

htmlpdflatexmanmd




cgred.conf

cgred.conf

Fichier de configuration de service cgred

   Fichier de configuration de service cgred de libcgroup. Contient des valeurs interne.

CONFIG_FILE Spécifie le fichier de configuration pour le service cgred
LOG_FILE Spécifie le fichier de log (défaut: envoie à syslog)
NODAEMON Equivalent à --nodaemon
LOG Niveau de verbosité (-v, -vv, -q ou --nolog)

^
11 juin 2013

htmlpdflatexmanmd




cgroup

cgroup

Présentation

   Les Control Groups fournissent un mécanisme pour agréger/partitionner des jeux de tâches, et tous les futures enfants, dans des groupes hiérarchiques.

   Un cgroup associe un jeu de tâches avec un jeu de paramètres pour un ou plusieurs sous-systèmes. un sous-système est un module qui utilise les facilités de groupement de tâches pour traiter ces groupes de tâche d'une manière particulière. un sous-système est typiquement un contrôleur de ressource.

   Une hiérarchie est un jeu de cgroups arrangée en arborescence, de manière à ce que chaque tâche dans le système soit dans exactement un cgroup dans la hiérarchie. Chaque hiérarchie a une instance du cgroup de système de fichier virtuel avec lui.

   Chaque tâche dans le système a un pointeur de référence vers un css_set. Un css_set contient un jeu de pointeur de référence vers des objets cgroups_subsys_state, un pour chaque cgroup enregistré dans le système.

   Un système de fichier hiérarchique de cgroup peut être monté pour le voir et le manipuler depuis l'espace utilisateur. On peut lister toutes les tâches attachées à un cgroup.

   Quand un cgroup est démonté, s'il y a des cgroups enfants, cette hiérarchie reste active. S'il n'y a pas de cgroups enfant, la hiérarchie est désactivé.

   Chaque tâche sous /proc a un fichier nommé cgroup affichant, pour chaque hiérarchie active, les noms des sous systèmes et le nom du cgroup.

   Chaque cgroup est représenté par un répertoire contenant les fichiers suivants:

tasks liste des tâches attachées au cgroup.
cgroup.procs liste des tgid dans ce cgroup.
notify_on_release Permet lorsque la dernière tâche d'un cgroup se termine et que le dernier cgroup enfant est supprimé, que le kernel lance une commande spécifiée dans le fichier release_agent
release_agent Le chemin à utiliser pour les notifications de release (existe dans le top cgroup uniquement)
cgroup.clone_children (0 ou 1) Tous les cgroups créés vont appeler post_clone pour chaque sous-système du nouveau cgroup. ce callback copie les valeurs du parent.
cgroup.event_control (0 ou 1) active l'exécution du release_agent
cpu planifie l'accès du cpu aux cgroup
cpu.shares Valeur entière de part relative du temps CPU disponible pour les tâches
cpu.rt_runtime_us Période en microsecondes contiguë la plus longue autorisé relative à rt_period_us
cpu.rt_period_us Période de temps en microsecondes de référence pour rt_runtime_us
cpuset Assigne des cpu et des nœud mémoire à des cgroups
cpuset.cpu_exclusive (0 ou 1) spécifie si des cpusets autres que celui-ci, des ses parents ou enfants peuvent partager les cpu spécifiés
cpuset.cpus Spécifie à quels CPU les tâches dans ce cgroup peuvent accéder
cpuset.mem_exclusive (0 ou 1) Spécifie si d'autre cpusets peuvent partager les nœuds de mémoire
cpuset.mem_hardwall (0 ou 1) Spécifie si les allocations au noyau de pages mémoire et données tampon sont restreintes aux nœuds mémoire spécifiés pour ce cpuset
cpuset.memory_migrate (0 ou 1) spécifie si une page en mémoire devrait migrer vers un nouveau nœud si les valeurs dans cpuset.mems changent
cpuset.memory_pressure Contient une moyenne de sollicitation de la mémoire des processus de ce cpuset. Est mis à jours lorsque memory_pressure_enabled est activé
cpuset.memory_pressure_enabled (0 ou 1) Spécifie si le système doit calculer la sollicitation mémoire (memory_pressure)
cpuset.memory_spread_page (0 ou 1) Spécifie si les tampons de système de fichier doivent être placés de manière régulières sur les nœuds mémoire alloués à ce cpuset
cpuset.memory_spread_slab (0 ou 1) Spécifie si les cache slab du noyau pour les opérations I/O doivent être placés de manière régulières sur le cpuset
cpuset.mems Spécifie les nœuds de mémoire auxquels les tâches de ce cgroup ont accès
cpuset.sched_load_balance (0 ou 1) Spécifie si le noyau va équilibrer les charges sur les CPU dans ce cpuset
cpuset.sched_relax_domain_level entier entre -1 et une valeur positive, représente la largeur de l'étendue des cpu sur laquelle le noyau va essayer d'équilibrer les charges. les valeurs sont:

        -1 Utilise la valeur par défaut du système pour l'équilibrage de charges
        0 Pas d'équilibrage de charge
        1 Équilibre immédiatement les charges sur les threads du même coeur
        2 Équilibre immédiatement les charges sur les coeurs du même chip
        3 Équilibre immédiatement les charges sur les CPU du même nœud ou la même lame
        4 Équilibre immédiatement les charges sur les CPU de même architecture NUMA
        5 Équilibre immédiatement les charges sur tous les CPU sur architecture NUMA

cpuacct Rapports automatiques sur les cpu utilisés
cpuacct.stat Rapporte le nombre de cycles CPU en unité USER_HZ pris par les tâches de ce cgroup et ses enfants dans le mode système
cpuacct.usage Rapporte le nombre de cycles CPU total en nanosecondes pris par les tâches de ce cgroup et enfants
cpuacct.usage_percpu Rapporte le nombre de cycles CPU total en nanosecondes sur chaque CPU pris par toutes les taches de ce cgroup et ses enfants
blkio Surveille et contrôle l'accès des tâches aux entrées/sorites sur des périphériques block
blkio.io_merged Rapporte le nombre de requêtes BIOS fusionnées en requêtes pour des opérations I/O
blkio.io_queued Rapporte le nombre de requêtes en file d'attente pour des opérations I/O
blkio.io_service_bytes Rapporte le nombre d'octets transférés depuis et vers des périphériques spécifiques
blkio.io_serviced Rapporte le nombre d'opérations I/O effectuées sur des périphériques spécifiques
blkio.io_service_time Rapporte le temps total pris par l'envoie de la demande et son achèvement pour les opérations I/O sur des périphériques spécifiques
blkio.io_wait_time Rapporte le temps total pour un service dans les files d'attentes des opération I/O sur des périphériques spécifiques
blkio.reset_stats Réinitialise les statistiques enregistrées
blkio.sectors Rapporte le nombre de secteurs transférés depuis/vers des périphériques spécifiques
blkio.time Rapporte le moment auquel un cgroup avait un accès I/O à des périphériques spécifiques, en ms
blkio.weight Poids relatif d'accès au block I/O (de 100 à 1000)
blkio.weight_device Poids relatif d'accès à des périphériques spécifiques au format majeur:minuer poid
blkio.avg_queue_size Rapporte la taille moyenne des files d'attente pour les opérations I/O
blkio.group_wait_time Rapporte la durée totale (en ns) q'un cgroup attendu une tranche de temps pour l'une de ses files d'attente
blkio.empty_time Rapporte la durée totale (en ns) qu'un cgroup a attendu sans requêtes en attente
blkio.idle_time Rapporte le temps totale (en ns) que le planification a passé à attendre un cgroup dans l'attente d'une meilleur requête que celles déjà dns les files d'attentes ou provenant d'autres cgroups (si CONFIG_DEBUG_BLK_CGROUP=y)
blkio.dequeue Rapporte le nombre de fois que des requêtes d'opérations I/O ont été retirés des files d'attentes par des périphériques spécifiques
net_cls repère les paquets réseau avec un ClassId
net_cls.classid valeur hexa indiquant un descripteur de contrôle du traffic
devices Autorise ou refuse l'accès aux périphériques dans un cgroup
devices.allow Spécifie à quels périphériques les tâches du cgroup peuvent accéder. Chaque entrée possède 4 champs : type (a, b ou c), majeur, mineur et accès (r, w, m : autorise à créer des fichiers de périphériques qui n'existent pas encore)
devices.deny Spécifie les périphériques que le cgroup n'a pas accès
devices.list Rapporte les périphériques pour lesquels les contrôles d'accès ont été définis pour ce cgroup
freezer suspend ou réactive les tâches dans un cgroup
freezer.state FROZEN (les tâches dans le cgroup sont suspendues), FREEZING ( le système est en train de suspendre les tâches dans le cgroup), THAWED (les tâches dans le cgroup sont réactivées)
perf_event Monitoring par cpu. (voir perf)
ns permet de grouper les processus dans des espaces de nom séparés
memory
memory.stat reporte des statistiques de mémoire:

        cache Cache de la page, inclut tmpfs (shmem), en octets
        rss caches swap et anonyme, n'inclut pas tmpfs (shmem), en octets
        mapped_file taille des fichiers mappés en mémoire, inclut tmpfs (shmem), en octets
        pgpgin nombre de pages chargées en mémoire
        pgpgout nombre de pages renvoyées de la mémoire
        swap usage swap, en octets
        active_anon caches swap et anonyme de la liste des LRU (dernier récemment utilisé) actifs, inclut tmpfs (shmem), en octets
        inactive_anon caches swap et anonyme de la liste des LRU (dernier récemment utilisé) inactifs, inclut tmpfs (shmem), en octets
        active_file mémoire sauvegardée sur fichier de la liste des LRU actifs, en octets
        inactive_file mémoire sauvegardée sur fichier de la liste des LRU inactifs, en octets
        unevictable mémoire ne pouvant pas être récupérée, en octets
        hierarchical_memory_limit limite de la mémoire pour la hiérarchie contenant le groupe de contrôle memory, en octets
        hierarchical_memsw_limit limite de la mémoire plus le swap pour la hiérarchie contenant le groupe de contrôle memory, en octets

memory.usage_in_bytes Rapporte l'utilisation mémoire total actuelle en octets
memory.memsw.usage_in_bytes Rapporte la somme de l'utilisation de la mémoire et de l'espace swap
memory.max_usage_in_bytes Rapporte le montant max e mémoire utilisée
memory.memsw.max_usage_in_bytes Rapporte la somme totale de mémoire et swap utilisé
memory.limit_in_bytes Définis la mémoire max utilisateur incluant le cache (-1 pas de limite)
memory.memsw.limit_in_bytes mémoire et swap max (-1 pas de limite)
memory.failcnt Rapporte le nombre de fois que la limite mémoire est atteinte (memory.limit_in_bytes)
memory.memsw.failcnt Rapporte le nombre de fois que la limite mémoire est atteinte (memory.memsw.limit_in_bytes)
memory.force_empty Vide la mémoire de toutes les pages utilisée lorsque défini à 0. uniquement quand aucune tâche n'est présente
memory.swappiness Définis la tendance du noyau à déloger la mémoire plutôt que de réclamer des pages depuis le cache de page (idem à /proc/sys/vm/swappiness)
memory.use_hierarchie (0 ou 1) spécifie si la mémoire utilisée devrait être prise en comptes sur une hiérarchie de cgroup, à 0, le sous-système ne récupère pas la mémoire d'une tâche enfant.

   Les nouveaux cgroups sont créé en utilisant l'appel système mkdir. les propriétés d'un cgroup sont modifiés en écrivant dans le fichier approprié dans ce cgroup.

Utiliser les cgroups

monter une hiérarchie cgroup:
mount -t tmpfs cgroup_root /sys/fs/cgroup
ajouter le sous-système cpuset:
mount -t cgroup cpuset -ocpuset /sys/fs/cgroup/cpuset
ajouter cpuset et memory:
mount -t cgroup -o cpuset,memory hier1 /sys/fs/cgroup/rg1
Changer de jeu de sous-systèmes:
mount -o remount,cpuset,blkio hier1 /sys/fs/cgroup/rg1
Spécifier le release_agent de la hiérarchie:
mount -t cgroup -o cpuset,release_agent="/sbin/cpuset_release_agent" xxx /sys/fs/cgroup/rg1
Changer la valeur du release_agent:
echo "/sbin/new_release_agent" › /sys/fs/cgroup/rg1/release_agent
Attacher une tâche à un cgroup:
echo `pidof bash` › tasks
^
15 juin 2013

htmlpdflatexmanmd




cgrules.conf

cgrules.conf

Fichier de configuration de libcgroup

   Fichier de configuration de libcgroup. Définis les cgroups à traiter, contient une liste de règles qui assignent à un group/user définis un cgroup dans un sous-système ou cgroup dans un sous-système.

2 format sont possible:
‹user› ‹controllers› ‹destination›
‹user›:‹process name› ‹controllers› ‹destination›
où:

user peut être, un nom d'utilisateur, un @groupe, '*', '%' équivalent à "ditto"
process name options, un nom de processus ou un chemin vers une commande à trziter
controllers liste de contrôlleurs séparés par des ',' ou '*'
destination Chemin relatif d'une hiérarchie contrôleur ou:

        %U username
        %u UID
        %g group
        %g GID
        %p process
        %P PID

   La premère règle qui matche est exécutée

Exemples

Les processus des étudiants dans le sous-système devices appartiennent au cgroup /usergroup/students
student devices /usergroup/students
Quand les étudiants exécutent cp, les processus dans le sous-système devices appartiennent au cgroup /usergroup/students/cp
student:cpdevices /usergroup/students/cp
Les processus lancés par n'importe qui du groupe admin appartiennent au cgroup admingroup
@admin *admingroup/
Les tâche de Peter pour le contrôleur cpu appartiennent au cgroup test1.
peter cpu test1/
Les tâche de Peter pour le contrôleur memory appartiennent au cgroup test2.
% memory test2/
Tout processus appartient au cgroup default
* * default/
^
15 juin 2013

htmlpdflatexmanmd




cgrulesengd

cgrulesengd

Service qui distribue les processus aux cgroups

   Quand un process change sont uid/gid effectif, il inspecte la liste des règles depuis cgrules.conf et place le processus dans le cgroup approprié. Le fichier est lu au lancement et peut être rechargé via SIGUSR2.

OPTIONS

-f ‹path›, --logfile=‹path› Écrit les logs dans le fichier donné
-s[facility], --syslog=[facility] logging facility
-n, --nodaemon Ne lance pas en tâche de fond
-v, --verbose mode verbeux
-q, --quiet mode silencieux
-Q, --nolog Désactive les logs
-d, --debug idem à -nvvf
-u ‹user›, --socket-user=‹user›
-g ‹group›, --socket-group=‹group› Définis le propriétaire du socket cgrulesengd. Assume que cgexec tourne avec les permissions suid adéquat pour qu'il puisse écrire dans ce socket quand --sticky est utilisé
^
15 juin 2013

htmlpdflatexmanmd




cgset

cgset

Définis les paramètres des cgroups donnés

OPTIONS

‹path› Nom du cgroup à changer. Peut être spécifié plusieurs fois
-r ‹name=value› Le nom du fichier et la valeur à écrire dans ce fichier. Peut être spécifie plusieurs fois
-copy-from ‹source_cgroup_path› Définis le nom du cgroup d'où copier les paramètres
^
15 juin 2013

htmlpdflatexmanmd




cgsnapshot

cgsnapshot

Génère des fichier de configuration pour les contrôleurs donnés

OPTIONS

-b file Affiche seulement les variables depuis la blacklist (défaut: /etc/cgsnapshot_blacklist.conf) ce fichier contient toutes les variables qui devraient être ignorés
-f, --file Redirige la sortie dans le fichier
-s, --silent Ignore toutes les alertes
-t, --strict N(affiche pas les variables qui ne sont pas dans la whitelist (défaut: /etc/cgsnapshot_whitelist)
-w file Définis le fichier blacklist
controller Définis le contrôleur dont les hiérarchies seront affichés
^
31 mars 2017

htmlpdflatexmanmd




diskdevstat

diskdevstat

Outil d'enregistrement d'activité de disque dur

   diskdevstat est un script systemtap pour enregistrer l'activité disque des processus et affiche les statistiques pour les opérations de lecture/écriture

OPTIONS

update interval Définis l'interval d'échantillonage
total duration Définis le temps total de mesure en secondes
display histogram Si présent, l'histogramme sera affiché en fin de mesure
^
11 février 2012

htmlpdflatexmanmd




host.conf

host.conf

Fichier de configuration du resolveur. Il doit contenir une paire clé/valeur par ligne.

Mots clés

order Spécifie comment les recherches de l'hôte doivent être exécutée. (valeur : bind, hosts, et nis)
trim Doit être suivi par une liste de domaines, séparés par ';' ou ',' et un point de terminaison. la librairie resolv+ utilise le nom de domaine donné depuis la fin d'un nom d'hôte résolu via DNS. Utilisé avec les hôtes et domaines locaux. N'affecte pas les noms d'hôte récupérés via NIS. Peut être spécifié plusieurs fois.
multi on|off à on, resolv+ retourne toutes les adresses valides pour un hôte qui apparaît dans /etc/hosts au lieu du premier.
nospoof on|ff à on, resolv+ tente d'empêcher le spoofing de nom d'hôte pour améliorer la sécurité de rlogin et rsh.
spoofalert on|off à on et avec nospoof à on, resolv+ log les erreurs dans syslog
spoof off|nowarn|warn à off, les adresse spoofée sont permises sans logger les erreurs. à warn, resolv+ empêche le spoofing de nom d'hôte et log les erreurs, à nowarn, empêche le spoofing mais ne log rien.
reorder on|off à on, resolv+ tente de réordonner les adresses d'hôte pour que les adresses locales soient listée en premier.

Environnement

   Ces variables permettent de remplacer les valeurs de /etc/host.conf

RESOLV_HOST_CONF pointe vers le fichier à lire au lieu de /etc/host.conf
RESOLV_SERV_ORDER Remplace la commande order
RESOLV_SPOOF_CHECK Remplace les commandes nospoof, spoofalert et spoof de la même manière que la commande spoof
RESOLV_MULTI Remplace la commande multi
RESOLV_REODER Remplace la commande reorder
RESOLV_ADD_TRIM_DOMAINS Une liste de domaines, séparés par ';' , ':' ou ',', qui sont ajouté à la liste des domaines.
RESOLV_OVERRIDE_TRIM_DOMAINS Une liste de domaines, séparés par ';' , ':' ou ',', qui remplacent la liste des domaines de la commande trim+
^
03 novembre 2011

htmlpdflatexmanmd




hostname

hostname, domainname, ypdomainname, nisdomainname, dnsdomainname

Affiche le nom d’hôte ou le domaine du système

hostname affiche ou définis le nom d’hôte
domainname Affiche ou définis le domaine NIS du système
ypdomainname Affiche ou définis le domaine NIS du système
nisdomainname Affiche ou définis le domaine NIS du système
dnsdomainname affiche le domaine dns du système

Afficher le nom

   Sans argument, ces commandes affiche le nom d’hôte ou le domaine du système

Définir le nom

   Appelé avec un argument ou avec l’option --file, ces commandes définissent le nom d’hote ou le domaine du système. Noter que ce n’est effectif que jusqu’au reboot du système.

  Le nom d’hôte est généralement définis une fois au démarrage du système dans /etc/init.d/hostname.sh (normalement lit le fichier /etc/hostname)

OPTIONS

-a, --alias Affiche le nom alias de l’hôte. dépréciée
-b, --boot toujours définir le nom d’hôte. S’il n’est pas spécifié, utilise localhost
-d, --domain Affiche le domaine DNS
-F, --file Le le nom d’hôte depuis le fichier spécifié
-f, --fqdn, --long Affiche le fqdn.
-A, --all-fqdns Affiche tous les fqdn de la machine.
-i, --ip-address Affiche les addresses réseau de l’hôte. Ne fonctionne que si le nom peut être résolu
-I, --all-ip-addresses Affiche toutes les adresses réseau de l’hôte
-s, --short Affiche le nom court
-v, --verbose mode verbeux
-y, --yp, --nis Affiche le domaine NIS

Fichiers

/etc/hostname Contient le nom d'hôte de la machine
^
15 juin 2013

htmlpdflatexmanmd




lscgroup

lscgroup

Liste tous les cgroups

OPTIONS

‹controllers›:‹path› Définis le cgroup et ses enfants à afficher, sinon affiche tous les cgroups
^
15 juin 2013

htmlpdflatexmanmd




lssubsys

lssubsys

Liste les hiérarchies contenant le sous-système donné

OPTIONS

controller Définis le sous-système dont la hiérarchie est affichée.
-m, --mount-points Affiche les points de montage. seul le premier point de montage des hiérarchies sont affichées
-M, --all-mount-points Affiche tous les points de montage
-a, --all Affiche tous les sous-systèmes, incluant ceux non montés
-i, --hierarchies Affiche le nombre de hiérarchie attachées si le sous-système est dans une hiérarchie
^
30 juin 2013

htmlpdflatexmanmd




lxc

lxc

Présentation

Les options suivantes doivent être présentes dans le kernel:
    * General setup
    * Control Group support
-› Namespace cgroup subsystem
-› Freezer cgroup subsystem
-› Cpuset support
-› Simple CPU accounting cgroup subsystem
-› Resource counters
-› Memory resource controllers for Control Groups
    * Group CPU scheduler
-› Basis for grouping tasks (Control Groups)
    * Namespaces support
-› UTS namespace
-› IPC namespace
-› User namespace
-› Pid namespace
-› Network namespace
    * Device Drivers
    * Character devices
-› Support multiple instances of devpts
    * Network device support
-› MAC-VLAN support
-› Virtual ethernet pair device
    * Networking
    * Networking options
-› 802.1d Ethernet Bridging
    * Security options
-› File POSIX Capabilities

Spécifications

   Un conteneur est un objet où la configuration est persistante. L'application est lancée dans ce conteneur et va utiliser cette configuration. Quand un processus est lancé, le conteneur est lancé. Quand le dernier processus dans le conteneur se termine, le conteneur est stoppé. Le conteneur peut être volatile, c'est à dire créé directement avec un fichier de configuration.
^
28 novembre 2016

htmlpdflatexmanmd




lxc-2.0.5

lxc-2.0.5

Présentation

Les options suivantes doivent être présentes dans le kernel:
    * General setup
    * Control Group support
-› Namespace cgroup subsystem
-› Freezer cgroup subsystem
-› Cpuset support
-› Simple CPU accounting cgroup subsystem
-› Resource counters
-› Memory resource controllers for Control Groups
    * Group CPU scheduler
-› Basis for grouping tasks (Control Groups)
    * Namespaces support
-› UTS namespace
-› IPC namespace
-› User namespace
-› Pid namespace
-› Network namespace
    * Device Drivers
    * Character devices
-› Support multiple instances of devpts
    * Network device support
-› MAC-VLAN support
-› Virtual ethernet pair device
    * Networking
    * Networking options
-› 802.1d Ethernet Bridging
    * Security options
-› File POSIX Capabilities
Les options suivantes doivent être présentes dans le kernel:
    * General setup
    * Control Group support
-› Namespace cgroup subsystem
-› Freezer cgroup subsystem
-› Cpuset support
-› Simple CPU accounting cgroup subsystem
-› Resource counters
-› Memory resource controllers for Control Groups
    * Group CPU scheduler
-› Basis for grouping tasks (Control Groups)
    * Namespaces support
-› UTS namespace
-› IPC namespace
-› User namespace
-› Pid namespace
-› Network namespace
    * Device Drivers
    * Character devices
-› Support multiple instances of devpts
    * Network device support
-› MAC-VLAN support
-› Virtual ethernet pair device
    * Networking
    * Networking options
-› 802.1d Ethernet Bridging
    * Security options
-› File POSIX Capabilities

Spécifications

   Un conteneur est un objet isolant des ressources de l'hôte. L'application/système est lancé dans un conteneur spécifié par une configuration qui est soit initialement créé ou passé en paramètres.
^
14 octobre 2014

htmlpdflatexmanmd




lxc-attach

lxc-attach

Lance un processus dans un conteneur en cours d'exécution

OPTIONS

-a, --arch Spécifie l'architecture. Accèpte les même paramètres que l'option lxc.arch.
-e, --elevated-privileges Ne supprime pas les privilège en exécutant la commande dans le conteneur. Le nouveau processus ne sera pas ajouté au cgroup du conteneur et ses capabilities ne seront pas supprimé avant l'exécution.
-s, --namespaces Spécifie l'espace de nom à attacher, en liste pipé, ex: NETWORK|IPC. MOUNT, PID, UTSNAME, IPC, USER, NETWORK. Implique -e
-R, --remount-sys-proc$ force à remonter /proc et /sys pour refléter les contextes d'espace de nom courant.
--keep-env Conserve l'environnement courant pour les programmes attachés. Mode par défaut, mais va changer dans le future à cause de fuites d'informations dans le conteneur.
--clear-env Efface l'environnement avant d'attacher.
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Pour ajouter un nouveau shell dans un conteneur existant:
lxc-attach -n container
Pour redémarrer le service cron d'un container existant:
lxc-attach -n container -- /etc/init.d/cron restart
Désactiver eth1 d'un conteneur qui n'a pas la capability NET_ADMIN:
lxc-attach -n container -e -- /sbin/ip link delete eth1
ou utiliser -s pour utiliser les outils installés sur l'hôte en dehors du conteneur:
lxc-attach -n container -s NETWORK -- /sbin/ip link delete eth1
^
25 novembre 2016

htmlpdflatexmanmd




lxc-attach-2.0.5

lxc-attach-2.0.5

Lance un processus dans un conteneur en cours d'exécution

OPTIONS

-f, --rcfile config_file Spécifie le fichier de configuration pour configurer la virtualisation et l'isolation pour le conteneur.
-a, --arch Spécifie l'architecture. Accèpte les même paramètres que l'option lxc.arch.
-e, --elevated-privileges Ne supprime pas les privilège en exécutant la commande dans le conteneur. Le nouveau processus ne sera pas ajouté au cgroup du conteneur et ses capabilities ne seront pas supprimé avant l'exécution. Les privilèges sont séparés par un |. Accèpte CGROUP, CAP et LSM.
-s, --namespaces Spécifie l'espace de nom à attacher, en liste pipé, ex: NETWORK|IPC. MOUNT, PID, UTSNAME, IPC, USER, NETWORK. Implique -e
-R, --remount-sys-proc force à remonter /proc et /sys pour refléter les contextes d'espace de nom courant.
--keep-env Conserve l'environnement courant pour les programmes attachés. Mode par défaut, mais va changer dans le future à cause de fuites d'informations dans le conteneur.
--clear-env Efface l'environnement avant d'attacher.
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
25 novembre 2016

htmlpdflatexmanmd




lxc-autostart-2.0.5

lxc-autostart-2.0.5

démarrer/stopper/tuer des conteneur auto-démarrés

   lxc-autostart traite les conteneur avec lxc.start.auto définis. Il permet à l'utilisateur de démarrer et d'arrêter ces conteneurs dans le bon ordre, attendant le bon moment. Il supporte le filtrage par lxc.cgroup ou simplement lancer tous les conteneurs définis. Il peut également être utilisé par des outils externe en mode list où aucune action n'est effectuée et affiche la liste des conteneurs affectés.

OPTIONS

-r, --reboot Reboot du conteneur
-s, --shutdown Stoppe le conteneur
-k, --kill Tue toutes les tâches dans le conteneur
-L, --list Affiche seulement le nom du conteneur au lieu d'effectuer l'action.
-t, --timeout TIMEOUT Attend TIMEOUT secondes avant de stopper/démarrer le conteneur
-g, --group GROUP Liste des groupes à sélectionner. Peut être spécifié plusieurs fois.
-a, --all Ignore lxc.group et sélectionne tous les conteneurs auto-démarrés
-A, --ignore-auto Ignore le flag lxc.start.auto. Combiné avec -a, sélectionne tous les conteneurs dans le système.

Autostart et boot système

   La commande lxc-autostart fait partie du service LXC. Autorisé à lancer des hôtes au démarrage, il est utilisé pour sélectionner les conteneurs à démarrer dans l'ordre et le délai entre chaque démarrage quand l'hôte boot.

   Chaque conteneur peut faire partie d'un ou plusieurs groupes, ou aucun. 2 groupes sont spéciaux. 1 est le groupe NULL. L'autre est le groupe "onboot"

   Quand le système boot avec lxc, il tente d'abord de booter tous les conteneur avec lxc.start.auto == 1 qui est un membre du groupe onboot. Le démarrage dans l'ordre de lxc.start.order. Si un lxc.start.delay est spécifié il est honoré avant de démarrer le prochain conteneur. Une fois les membres du groupe onboot démarrés, le système lxc lance les conteneurs avec lxc.start.auto == 1 mais non membre du groupe onboot.

Exemple de démarrage

Démarre le groupe onboot en premier, puis le groupe NULL
-g "onboot,"
Démarre le groupe DNS, puis web, puis NULL, suivis par onboot:
-g "dns,web,,onboot"
^
14 octobre 2014

htmlpdflatexmanmd




lxc-cgroup

lxc-cgroup

Gère le cgroup associé avec un conteneur

OPTIONS

state-object Spécifie le state object name
[value] Spécifie la valeur à assigner au state-object
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Afficher les périphériques permis:
lxc-cgroup -n foo devices.list
Assigner les processeurs 0 et 3 au conteneur:
lxc-cgroup -n foo cpuset.cpus "0,3"
^
25 novembre 2016

htmlpdflatexmanmd




lxc-cgroup-2.0.5

lxc-cgroup-2.0.5

Gère le cgroup associé avec un conteneur

OPTIONS

state-object Spécifie le state object name
[value] Spécifie la valeur à assigner au state-object
-q, --quiet mode silencieux
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
--rcfile=FILE Spécifie le fichier de configuration pour la virtualisation et l'isolation

Exemples

Afficher les périphériques permis:
lxc-cgroup -n foo devices.list
Assigner les processeurs 0 et 3 au conteneur:
lxc-cgroup -n foo cpuset.cpus "0,3"
^
25 novembre 2016

htmlpdflatexmanmd




lxc-checkconfig-2.0.5

lxc-checkconfig-2.0.5

Vérifie le support lxc dans le kernel

Exemple

Vérifie le kernel courant. CONFIG peut être définis dans l'environnement
lxc-checkconfig
^
14 octobre 2014

htmlpdflatexmanmd




lxc-checkpoint

lxc-checkpoint

Vérifie le conteneur et dump son état dans un fichier.

OPTIONS

-S, --statefile=FILE Écrit l'état du conteneur dans cet fichier. est exclusif avec --statefd
-d, --statefd=FD Écrit l'état du conteneur dans le descripteur de fichier
-k, --kill Tue le conteneur après vérification. Les processus reçoivent un SIGKILL. est exclusif avec --pause
-p, --pause Mais le conteneur en pause avec la vérification
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Démarre un nouveau conteneur 123 calculant les décimales de pi:
lxc-execute -n 123 -- pi1 -d 500000
lxc-execute --name=123 -- pi1 -d 500000
pour checkpoint ce même conteneur en mode dump-death:
lxc-checkpoint -n 123 -S /share/123/chkpt1 -k
lxc-checkpoint --name=123 --statefile=/share/123/chkpt1 -k
pour vérifier le même conteneur et le mettre en pause:
lxc-checkpoint -n 123 -S /share/123/chkpt1 -p
lxc-checkpoint --name=123 -S /share/123/chkpt1 -p
^
25 novembre 2016

htmlpdflatexmanmd




lxc-config-2.0.5

lxc-config-2.0.5

Demander la configuration système lxc

OPTIONS

-l Liste toutes les clé supportées
‹item› Requêter la valeur de la clé spécifiée
^
14 octobre 2014

htmlpdflatexmanmd




lxc-console

lxc-console

Lance une console permettant de se logger dans le conteneur

   Si le service tty a été configuré et est disponible pour le conteneur spécifié comme paramètre, cette commande va lancer une console permettant de se logger dans le conteneur.

OPTIONS

[escape character] Spécifie le préfixe de séquence d'échappement à utiliser au lieu de ‹ctrl a›.
-t [ttynum] Spécifie le tty à utiliser
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
25 novembre 2016

htmlpdflatexmanmd




lxc-console-2.0.5

lxc-console-2.0.5

Lance une console permettant de se logger dans le conteneur

   Si le service tty a été configuré et est disponible pour le conteneur spécifié comme paramètre, cette commande va lancer une console permettant de se logger dans le conteneur.

OPTIONS

[escape character] Spécifie le préfixe de séquence d'échappement à utiliser au lieu de ‹ctrl a›.
-t [ttynum] Spécifie le tty à utiliser
-q, --quiet mode silencieux
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
^
25 novembre 2016

htmlpdflatexmanmd




lxc-copy-2.0.5

lxc-copy-2.0.5

Copie un conteneur existant

   lxc-copy créé et optionnellement démarre des copies de conteneurs existants. Il remplace lxc-clone et lxc-start-ephemeral. Les copies peuvent être des clones complets, dans ce cas tout le système de fichier du conteneur est simplement copié dans le nouveau conteneur. La copie peut également être un snapshot, par exemple une copie COW du conteneur original. Dans ce cas, le stockage doit supporter les snapshots (aufs, btrfs, lvm et zfs).

   si -e est spécifié un snapshot éphémère du conteneur original est créé et démarré. Les conteneur éphémères sont configurés avec lxc.ephemeral = 1 et sont détruits à l'arrêt. Si -e et -D sont spécifiés, un snapshot non éphémère est créé et démarré.

   Les conteneurs créés et démarrés avec -e peuvent avoir des montages personnalisé. Il sont spécifiés pavec -m. 3 types de montages sont supportés: aufs, bind et overlay.

OPTIONS

-N, --newname newname Nom pour la copie
-p, --newpath newpath Chemin pour la copie
-R, --rename Renomme le conteneur original
-s, --snapshot Crée un snapshot du conteneur original.
-F, --foreground Lance le snapshot en foreground
-d, --daemon Lance le snapshot en tâche de fond
-m, --mount mounttype Spécifie un montage pour un snapshot avec ses options (ex: ind=/src:/dest:ro,overlay=/src:/dest)
-B, --backingstorage backingstorage Spécifie le type de stockage à utiliser (aufs, btrfs, dir, lvm, loodp, overlay, zfs)
-L, --fssize size [unit] Spécifie la taille pour un système de fichier LVM
-D, --keepdata Avec -e, un conteneur non-éphémère est créé et démarré
-K, --keepname Le hostname du conteneur original est conservé pour la copie
-M, --keepmac L'adresse MAC du conteneur original est conservé pour la copie
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration

Hook de copie

   Si le conteneur copié a un ou plusieurs lxc.hook.clone, les hooks spécifiés sont appelés pour le nouveau conteneur. Les 3 premiers arguments passés au hook sont le nom du conteneur, une section 'lxc' et le type de hook (clone). La variable d'environnement LXC_ROOTFS_MOUNT donne le chemin sous lequel le système de fichier root est monté. Le chemin du fichier de configuration est stocké dans LXC_SRC_NAME, et le chemin ou le périphérique dans lequel le rootfs est localisé est dans LXC_ROOTFS_PATH.
^
10 octobre 2014

htmlpdflatexmanmd




lxc-create

lxc-create

Créer un objet système où sont stockés les informations de configuration et utilisateur

   L'objet est un répertoire crée dans/var/lib/lxc et identifié par son nom.

OPTIONS

-f config_file Spécifie le fichier de configuration
-t template Raccourci vers ur scrite lxc-template.
-B backingstore vaut dir, lvm, loop, btrfs, best

        dir (défaut) signifie que le système racine du conteneur sera un répertoire sous /var/lib/lxc/container/rootfs.
        btrfs le système racine doit être btrfs, et le conteneur sera crée dans un nouveau volume. Cela permet de créer des clones
        lvm un périphérique block lvm sera utilisé et les options disponible sont --lvname --vgname --thinpool --fstype et --fssize
        best lxc tente dans l'ordre: btrfs, zfs, lvm, dir.

-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
28 novembre 2016

htmlpdflatexmanmd




lxc-create-2.0.5

lxc-create-2.0.5

Créer conteneur

   lxc-create créé un objet système où sont stockés les informations de configuration et où peuvent être stockés les informations utilisateur. Le nom est utilisé pour spécifier le conteneur à utiliser avec les différentes commandes LXC. L'objet est un répertoire crée dans/var/lib/lxc et identifié par son nom.

OPTIONS

-f config_file Spécifie le fichier de configuration
-t template Raccourci vers un script lxc-template.
-B backingstore dir, lvm, loop, btrfs, zfs, rbd, ou best

        dir (défaut) signifie que le système racine du conteneur sera un répertoire sous /var/lib/lxc/container/rootfs.
        btrfs le système racine doit être btrfs, et le conteneur sera crée dans un nouveau volume. Cela permet de créer des clones
        lvm un périphérique block lvm sera utilisé et les options disponible sont --lvname --vgname --thinpool --fstype et --fssize
        best lxc tente dans l'ordre: btrfs, zfs, lvm, dir.

-- template-options Passe des options au template. voir lxc-create -t TEMPLATE -h
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
10 octobre 2014

htmlpdflatexmanmd




lxc-destroy

lxc-destroy

Supprimer un conteneur

OPTIONS

-f Si un conteneur est un cour de fonctionnement, l'arrête avant.
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
^
28 novembre 2016

htmlpdflatexmanmd




lxc-destroy-2.0.5

lxc-destroy-2.0.5

Supprimer un conteneur

OPTIONS

-f Si un conteneur est un cour de fonctionnement, l'arrête avant.
-s, --snapshots Détruit le conteneur spécifié incluant tous ses snapshots
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
25 novembre 2016

htmlpdflatexmanmd




lxc-device-2.0.5

lxc-device-2.0.5

Gère les périphériques des conteneurs en cours d'exécution

OPTIONS

-n, --name=NAME Nom du conteneur
‹action› Type d'action à effectuer, seul 'add' est actuellement supporté
‹DEVICE› Périphérique à ajouter
[NAME] Nom pour le périphérique dans le conteneur

Exemples

Créer /dev/video0 dans le conteneur p1
lxc-device -n p1 add /dev/video0
Place eth0 de l'hôte en tant que eth1 dans p1
lxc-device -n p1 add eth0 eth1
^
11 octobre 2014

htmlpdflatexmanmd




lxc-execute

lxc-execute

Lance une application dans un conteneur via un processus intermédiaire lxc-init qui aura le pid 1. lxc-init est conçu pour forwarder les signaux à la commande lancée.

OPTIONS

-f, --rcfile config_file Spécifie le fichier de configuration pour le conteneur
-s, --define KEY=VAL Permet d'assigner des variables supplémentaires
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
28 novembre 2016

htmlpdflatexmanmd




lxc-execute-2.0.5

lxc-execute-2.0.5

Lance une application dans un conteneur via un processus intermédiaire lxc-init qui aura le pid 1. lxc-init est conçu pour forwarder les signaux à la commande lancée.

OPTIONS

-f, --rcfile config_file Spécifie le fichier de configuration pour le conteneur
-s, --define KEY=VAL Permet d'assigner des variables supplémentaires
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
10 octobre 2014

htmlpdflatexmanmd




lxc-freeze

lxc-freeze

Met en pause les processus d'un conteneur

OPTIONS

-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
28 novembre 2016

htmlpdflatexmanmd




lxc-freeze-2.0.5

lxc-freeze-2.0.5

Met en pause les processus d'un conteneur

OPTIONS

-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
14 octobre 2014

htmlpdflatexmanmd




lxc-halt

lxc-halt

Arrête un conteneur sans terminer les processus. Fournis un switch au runlevel 0 dans le conteneur

OPTIONS

CONTAINER Spécifie le conteneur.
^
25 novembre 2016

htmlpdflatexmanmd




lxc-info-2.0.5

lxc-info-2.0.5

Demande des informations sur un conteneur

OPTIONS

-c, --config KEY Affiche une clé de configuration d'un conteneur. Peut être spécifié plusieurs fois
-s, --state Affiche simplement l'état du conteneur
-p, --pid Affiche simplement le pid du conteneur
-i, --ips Affiche simplement les adresses IP du conteneur
-S, --stats Affiche des statistiques du conteneur. Noter que pour des raisons de performances le kernel ne comptabilise pas la mémoire sauf si une limite est définie (ex: lxc.cgroup.memory.kmem.limit_in_bytes = number)
-H, --no-humanize Affiche les statistiques en brut.
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration

Exemples

Afficher les informations pour foo
lxc-info -n foo
Afficher les informations pour tous les conteneurs dont le nom commence par ubuntu
lxc-info -n 'ubuntu*'
Afficher la paire veth de foo
lxc-info -n foo -c lxc.network.0.veth.pair
^
11 octobre 2014

htmlpdflatexmanmd




lxc-kill

lxc-kill

Envoie un signal au process 1 du conteneur. si utilisé sur une application lancée par lxc-execute, lxc-init le forward au pid 2

OPTIONS

--name=NAME SIGNUM Envoie SIGNUM au premier processus du conteneur
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

envoie le signal 26 au process pi1 dans le conteneur 123:
lxc-execute -n 123 -- pi1 -d 500000
lxc-kill --name=123 26
^
14 octobre 2014

htmlpdflatexmanmd




lxc-ls

lxc-ls

Lister les conteneurs existant sur le système

OPTIONS

-# Affiche une entrée par ligne (défaut quand /dev/stdout n'est pas un tty)
--active Liste uniquement les conteneurs actifs (idem à --frozen --running)
--frozen Liste seulement les conteneurs gelés
--running Liste seulement les conteneurs en cours de fonctionnement
--stopped Liste seulement les conteneurs stoppés
-f, --fancy Utilise une sortie fantaisie, en colonnes
-F, --fancy-format Liste séparé par des "," de colonnes à afficher dans la sortie fancy. La liste des champs accèpté est: name, state, ipv4, ipv6, autostart, pid, memory, ram, swap
--nesting Affiche les conteneurs imbriqués
filter (regex) Le filtre spécifié sera appliqué au nom du conteneur.

Exemples

Liste tous les conteneurs, un par ligne avec nom, état, adresse ipv4 et ipv6
lxc-ls --fancy
Lister tous les conteneurs actifs et affiche la liste dans une colonne
lxc-ls --active -1
^
25 novembre 2016

htmlpdflatexmanmd




lxc-ls-2.0.5

lxc-ls-2.0.5

Lister les conteneurs existant sur le système

OPTIONS

-1 Affiche une entrée par ligne (défaut quand la sortie n'est pas a tty)
--active Liste seulement les conteneur actifs (idem à --frozen --running)
--frozen Liste seulement les conteneurs gelés
--running Liste seulement les conteneurs en cours de fonctionnement
--stopped Liste seulement les conteneurs stoppés
-f, --fancy Utilise une sortie fantaisie, en colonnes
-F, --fancy-format Liste séparé par des "," de colonnes à afficher dans la sortie fancy. voir avec --help
-g, --groups groups Liste de groupes que le conteneur doit avoir pour être affichés
--nesting=NUM Affiche les conteneurs imbriqués. Le niveau d'imbrication à afficher peut être spécifié
--filter=regex L'expression est appliquée au nom du conteneur
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration

Exemples

Liste tous les conteneurs, un par ligne avec nom, état, adresse ipv4 et ipv6
lxc-ls --fancy
Lister tous les conteneurs actifs et affiche la liste dans une colonne
lxc-ls --active -1
^
14 octobre 2014

htmlpdflatexmanmd




lxc-monitor

lxc-monitor

Supervise l'état des conteneurs spécifiques

OPTIONS

-Q, --quit quitte immédiatement s'il n'a pas de client au lieu d'attendre 30 secondes
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Superviser les états du conteneur foo
lxc-monitor -n foo
Superviser les états des conteneurs foo et bar
lxc-monitor -n 'foo|bar'
Superviser les états des conteneurs dont le nom commence avec 'f' ou 'b'
lxc-monitor -n '[f|b].*'
Superviser les états de tous les conteneurs
lxc-monitor -n '.*'
^
25 novembre 2016

htmlpdflatexmanmd




lxc-monitor-2.0.5

lxc-monitor-2.0.5

Supervise l'état des conteneurs spécifiques

OPTIONS

-Q, --quit Demande à lxc-monitord dans chaque lxcpath de quitter.lxc-monitord quitte immédiatement s'il n'a pas de client au lieu d'attendre 30 secondes
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration

Exemples

Superviser les états du conteneur foo
lxc-monitor -n foo
Superviser les états des conteneurs foo et bar
lxc-monitor -n 'foo|bar'
Superviser les états des conteneurs dont le nom commence avec 'f' ou 'b'
lxc-monitor -n '[f|b].*'
Superviser les états de tous les conteneurs
lxc-monitor -n '.*'
^
14 octobre 2014

htmlpdflatexmanmd




lxc-ps

lxc-ps

Liste les processus appartenant à un conteneur spécifique

OPTIONS

--name NAME spécifie le nom du conteneur pour limiter la sortie
--lxc Limite la sortie au processus appartenant à tous le conteneur lxc
ps_options l'option est passée à la commande ps
^
10 octobre 2014

htmlpdflatexmanmd




lxc-restart

lxc-restart

Redémarre un conteneur depuis un fichier.

OPTIONS

-S, --state-file=FILE Lit l'état du conteneur dans le fichier
-d, --statefd=FD Lit l'état du conteneur dans le descripteur de fichier
-p Met le conteneur en pause après l'avoir redémarré
-f, --rcfile=config_file Spécifie le fichier de configuration pour l'isolation du conteneur.
-s KEY=VAL Assigne la valeur VAL à la variable KEY.
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Démarre un nouveau conteneur 123 calculant les décimales de pi:
lxc-execute -n 123 -- pi1 -d 500000
lxc-execute --name=123 -- pi1 -d 500000
pour checkpoint ce même conteneur en mode dump-death:
lxc-checkpoint -n 123 -S /share/123/chkpt1 -k
lxc-checkpoint --name=123 --statefile=/share/123/chkpt1 -k
Et pour le redémarrer avec un id différent:
lxc-restart -n 200 -S /share/123/chkpt1
lxc-restart --name=200 --statefile=/share/123/chkpt1
^
25 novembre 2016

htmlpdflatexmanmd




lxc-snapshot-2.0.5

lxc-snapshot-2.0.5

Snapshot un conteneur

   Les snapshots sont stockés comme conteneur snapshot sous le chemin de configuration du conteneur.

OPTIONS

-c, --comment comment-file Associe le commentaire dans le fichier spécifié avec le snapshot
-d, --destroy snapshot-name Détruit le snapshot nommé. 'ALL' détruit tous les snapshots
-L, --list Liste les snapshots existants
-C, --showcomments Affiche les commentaires dans la liste des snapshots
-r, --restore snapshot-name Restaure un snapshot, signifiant la création d'un nouveau conteneur complet, qui est une copie du snapshot
-N, --newname En restaurant un snapshot, le dernier argument optionnel si non spécifié via --newname, est le nom à utiliser pour le conteneur restauré. Si ce nom est identique au nom original du conteneur, le conteneur original sera détruit et le conteneur restauré le remplacera. Noter que supprimer le snapshot original n'est pas possible avec aufs, overlayfs ou zfs.
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
11 octobre 2014

htmlpdflatexmanmd




lxc-start

lxc-start

Lance une application dans un conteneur. Les processus et groupes de processus orphelin ne sont pas supportés avec cette commande, utiliser lxc-execute à la place.

OPTIONS

-d, --daemon Lance en tâche de fond
-p, --pidfile Crée un fichier avec le process id spécifié
-f, --rcfile config_file Fichier de Configuration pour le conteneur
-c, --console console-device spécifie un device à utiliser pour la console du conteneur, ex. /dev/tty8. Par défaut, utilise le terminal courant.
-L, --console-log console-logfile Spécifie un fichier pour logger la sortie de la console du conteneur.
-s, --define KEY=VAL Permet d'assigner des variables supplémentaires
-c, --close-all-fds Si un des descripteurs de fichier est hérité, le ferme. -d implique -c
--share-net name|pid hérite un espace de nom réseau. Il continuera d'être géré pas son propriétaire original. La configuration réseau dans ce conteneur est ignorée et les scripts up/down ne sont pas exécutés.
--share-ipc name|pid Hérite d'un espace de nom IPC
--share-uts name|pid Hérite d'un espace de nom UTS
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
28 novembre 2016

htmlpdflatexmanmd




lxc-start-2.0.5

lxc-start-2.0.5

Lance une application dans un conteneur

OPTIONS

-d, --daemon Lance en tâche de fond
-F, --foreground Ne lance pas en tâche de fond
-p, --pidfile Crée un fichier avec le process id
-f, --rcfile config_file Fichier de Configuration pour le conteneur
-c, --console console-device spécifie un device à utiliser pour la console du conteneur, ex. /dev/tty8. Par défaut, utilise le terminal courant.
-L, --console-log console-logfile Spécifie un fichier pour logger la sortie de la console du conteneur.
-s, --define KEY=VAL Permet d'assigner des variables supplémentaires
-C, --close-all-fds Si un descripteur de fichier est hérité, le ferme. -d implique -c
--share-net name|pid hérite un espace de nom réseau. Il continuera d'être géré pas son propriétaire original. La configuration réseau dans ce conteneur est ignorée et les scripts up/down ne sont pas exécutés.
--share-ipc name|pid Hérite d'un espace de nom IPC
--share-uts name|pid Hérite d'un espace de nom UTS
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
11 octobre 2014

htmlpdflatexmanmd




lxc-stop

lxc-stop

Arrêter une application dans un conteneur

OPTIONS

-r, --reboot Redémarre de conteneur
-k, --kill Tue toutes les tâches dans le conteneur au lieu de les terminer proprement
--nokill termine les tâches proprement, mais ne détruit pas le conteneur
--nolock Évite l'utilisation d'un lxc locking, et devrait être utilisé seulement si lxc-stop est bloqué à cause d'un mauvais état système.
-W, --nowait effectue l'action demandé et quitte
-t, --timeout TIMEOUT attend TIMEOUT secondes avec de détruit brutalement le conteneur

Codes de sortie

0 Le conteneur a été stoppé avec succès
1 Un erreur s'est produite en stoppant le conteneur
2 Le conteneur spécifié existe mais n'est pas en cours de fonctionnement
^
28 novembre 2016

htmlpdflatexmanmd




lxc-stop-2.0.5

lxc-stop-2.0.5

Arrêter une application dans un conteneur

   lxc-stop reboot, éteind proprement, ou tue tous les processus dans le conteneur. Par défaut il tente d'éteindre le conteneur en envoyant le signal lxc.haltsignal (SIGPWR par défaut) au processus init du conteneur, attend 60 secondes, et quitte si le conteneur s'est arrêté, ou envoie lxc.stopsignal (SIGKILL par défaut) pour forcer l'extinction. Un reboot envoien un lxc.rebootsignal (SIGINT par défaut).

OPTIONS

-r, --reboot Redémarre de conteneur
-k, --kill Tue toutes les tâches dans le conteneur au lieu de les terminer proprement
--nokill termine les tâches proprement, mais ne détruit pas le conteneur si l'arrêt a échoué
--nolock Évite l'utilisation d'un lxc locking, et devrait être utilisé seulement si lxc-stop est bloqué à cause d'un mauvais état système.
-W, --nowait effectue l'action demandé et quitte
-t, --timeout TIMEOUT attend TIMEOUT secondes avec de détruit brutalement le conteneur

Codes de sortie

0 Le conteneur a été stoppé avec succès
1 Un erreur s'est produite en stoppant le conteneur
2 Le conteneur spécifié existe mais n'est pas en cours de fonctionnement
^
10 octobre 2014

htmlpdflatexmanmd




lxc-unfreeze

lxc-unfreeze

Résume les processus d’un conteneur

OPTIONS

-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
28 novembre 2016

htmlpdflatexmanmd




lxc-unfreeze-2.0.5

lxc-unfreeze-2.0.5

Résume les processus d’un conteneur

OPTIONS

-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
25 novembre 2016

htmlpdflatexmanmd




lxc-unshare-2.0.5

lxc-unshare-2.0.5

Lance un tâche dans un nouveau jeu d'espaces de noms

   lxc-unshare permet de lancer une tâche dans un jeu d'espaces de noms clonés. Principalement utilisé pour des tests. En dépit de son nom, il utilise toujours un clone au lieu de départager la nouvelle tâche avec les nouveaux namespaces.

OPTIONS

-s namespaces Spécifie les espaces de nom à attacher en liste séparé par un pipe. MOUNT, PID, UTSNAME, IPC, USER et NETWORK.
-u user Spécifie un userid pour la nouvelle tâche
-H hostname Définis le hostname dans le nouveau conteneur. Uniquement avec UTSNAME
-i interfacename Place l'interface nommée dans le conteneur. Seulement avec NETWORK
-d Met en tâche de fond
-M Monte les système de fichier par défaut (/proc, /dev/shm et /dev/mqueue) dans le conteneur. Seulement avec MOUNT

Exemples

Lancer un nouveau shell avec sont propre UTSNAME
lxc-unshare -s UTSNAME /bin/bash
Lancer un shell dans un nouvel espace réseau, pid et mount
lxc-unshare -s "NETWORK|PID|MOUNT" /bin/bash
Avec 2 interfaces réseaux (lo et veth1) et le hostname 'slave'
lxc-unshare -s "NETWORK|PID|MOUNT|UTSNAME" -M -H slave -i veth1 /bin/bash
^
25 novembre 2016

htmlpdflatexmanmd




lxc-user-nic-2.0.5

lxc-user-nic-2.0.5

Créer et attacher un nic à un autre namespace network

   lxc-user-nic est un setuid-root programme avec lequel les utilisateurs peuvent créer des interfaces réseau à utiliser par un conteneur lxc. Il consulte /etc/lxc/lxc-usernet pour déterminer le nombre d'interfaces l'utilisateur est autorisé à créer, et quel bridge peut être attaché. Il conserve le nombre d'interface dans /run/lxc/nics.

OPTIONS

pid pid pour la tâche dont
type Type d'interface réseau à attacher. Actuellement seul veth est supporté.
bridge Bridge auquel attacher l'interface
nicname nom de l'interface réseau
^
25 novembre 2016

htmlpdflatexmanmd




lxc-usernsexec-2.0.5

lxc-usernsexec-2.0.5

Lancer une tâche en root dans un nouvel espace de nom utilisateur

OPTIONS

-m uid-map uid map à utiliser dans l'espace de nom utilisation. Chaque map consiste en 4 valeur séparés par ':'. 1) le caractère u, g ou b (both), 2) userid, 3)userid vu dans l'hôte. 4) nombre d'id à mapper.

Exemples

lancer un shell avec des sous uid mappé dans le conteneur:
lxc-usernsexec
Lancer un shell autre que /bin/sh
lxc-usernsexec -- /bin/bash
map l'uid 1000 en 0, et root en 190000
lxc-usernsexec -m b:0:1000:1 -m b:1:190000:1 -- /bin/chown 1:1 $file
^
11 octobre 2014

htmlpdflatexmanmd




lxc-wait

lxc-wait

Attend un état de conteneur spécifique avant de se terminer

OPTIONS

-s states Spécifier l’état du conteneur
-t timeout attend timeout secondes pour l'état désiré
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Quitte quand RUNNING est atteind:
lxc-wait -n foo -s RUNNING
Quitte quand RUNNING ou STOPPED est atteind:
lxc-wait -n foo -s 'RUNNING|STOPPED'
^
28 novembre 2016

htmlpdflatexmanmd




lxc-wait-2.0.5

lxc-wait-2.0.5

Attend un état de conteneur spécifique avant de se terminer

OPTIONS

-s states Spécifier l’état du conteneur
-t timeout attend timeout secondes pour l'état désiré
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration

Exemples

Quitte quand RUNNING est atteind:
lxc-wait -n foo -s RUNNING
Quitte quand RUNNING ou STOPPED est atteind:
lxc-wait -n foo -s 'RUNNING|STOPPED'
^
25 novembre 2016

htmlpdflatexmanmd




lxc.conf-2.0.5

lxc.conf-2.0.5

Fichiers de configuration pour LXC

   La configuration du conteneur est maintenu dans le config stocké dans le répertoire du conteneur. Une configuration de base est générée à la création du conteneur avec des valeurs par défaut recommandée depuis le template choisis, plus d'autres venant du fichier /etc/lxc/default.conf ou ~/.config/lxc/default.conf pour les conteneurs non privilégiés.

Configuration système

   La configuration système est utilisée pour définir des valeurs tels que les chemins de recherche et les paramètres de stockage pour LXC.
^
25 novembre 2016

htmlpdflatexmanmd




lxc.container.conf-2.0.5

lxc.container.conf-2.0.5

Fichiers de configuration de conteneur pour LXC

   Les conteneurs linux sont toujours créé avant être utilisés. Cette création définis un jeu de ressources système à virtualiser/isoler quand un processus utilise le conteneur. Par défaut, les pid, sysv ipc et points de montage sont virtualisés et isolés. Les autres ressources système sont partagées entre les conteneurs, tant qu'ils sont explicitement définis dans la configuration.

Configuration

lxc.include Spécifie un fichier de configuration à inclure
lxc.arch Autoriser un jeu d'architectures pour le conteneur, par exemple lancer des binaires 32bits dans un hôte 64bits
lxc.utsname Spécifie le hostname pour le conteneur
lxc.haltsignal Spécifie un signal utilisé pour arrêter le conteneur (utilisé par lxc-stop) Défaut: SIGPWR
lxc.rebootsignal Spécifie un signal utilisé pour redémarrer le conteneur (utilisé par lxc-stop) Défaut: SIGINT
lxc.stopsignal Spécifie un signal utilisé pour stopper le conteneur (utilisé par lxc-stop) Défaut: SIGKILL
lxc.init_cmd Chemin absolu dans le rootfs du conteneur du binaire à utiliser comme init. Défaut: /sbin/init
lxc.init_uid UID à utiliser dans un namespace user pour init. Défaut: 0
lxc.init_gid GID à utiliser dans un namespace user pour init. Défaut: 0
lxc.ephemeral (bool) Spécifie si un conteneur est détruit à l'arrêt
lxc.network Peut être utilisé sans valeur pour supprimer toutes valeurs précédentes.
lxc.network.type Spécifie le type de réseau à utiliser pour le conteneur. Chaque fois qu'un lxc.network.type est trouvé, une nouvelle configuration réseau commence et permet de définir plusieurs types de réseaux:

        none Le conteneur partage l'espace réseau de l'hôte
        empty Ne créé que l'interface loopback
        veth Créé une paire ethernet virtuel, dont la partie dans l'hôte est attaché à un bridge.
        vlan interface vlan lié avec l'interface
        macvlan lie une interface macvlan
        phys Une interface déjà existante est assignée au conteneur

lxc.network.vlan.id Pour le type vlan, indique le numéro du vlan
lxc.network.flags Àction à prendre pour le réseau (up=active l'interface)
lxc.network.link Spécifie l'interface à utiliser pour le trafic réseau réel (type phys ou macvlan)
lxc.network.mtu mtu max pour cette interface
lxc.network.name Nom de l'interface
lxc.network.hwaddr Adresse mac pour l'interface virtuelle
lxc.network.ipv4 IPv4 de l'interface
lxc.network.ipv4.gateway passerelle de l'interface
lxc.network.ipv6 IPv6 pour l'interface
lxc.network.ipv6.gateway Passerelle ipv6 pour l'interface
lxc.network.script.up script à exécuter après la création/configuration de l'interface (côté hôte).
lxc.network.script.down script à exécuter après la avant de détruire l'interface (côté hôte).
lxc.pts Si définis, le conteneur aura une nouvelle instance de pseudo tty. La valeur spécifie le nombre de tty permis.
lxc.console.logfile Chemin vers un fichier où la sortie de la console est écrite
lxc.console Chemin vers un périphérique auquel la console est attachée. Option dangereuse.
lxc.tty Spécifie le nombre de tty à rendre disponible dans le conteneur
lxc.devttydir Spécifie un répertoire sous /dev sous lequel créer les périphériques de console du conteneur. les pty Unix98 sont créés sur l'hôte et lié dans les périphériques attendus dans le conteneur. Par défaut, il sont liés sur /dev/console et /dev/ttyN. Cela peut empêcher des misesà jours. En changeant d'emplacement sous /dev, ils seront liés symboliquement.
lxc.autodev Par défaut lxc ne créé que quelques liens symboliques dans /dev du conteneur (fd,stdin,stdout,stderr) ais ne créé pas automatiquement les entrées de périphérique. À 1, lxc monte un nouveau tmpfs sous /dev (limité à 500k) et définis les périphériques minimum requis. À 0, empêche de monter et remplir /dev
lxc.kmsg Active /dev/kmrsg comme lien vers /dev/console. Défaut: 0
lxc.mount Les points de montage sont privés au conteneur. Spécifie l'emplacement d'un fichier fstab contenant les informations de montage.
lxc.mount.entry Spécifie un point de montage correspondant à une ligne dans le fichier fstab
lxc.mount.auto Spécifie quels systèmes de fichiers kernel devraient être automatiquement montés:

        proc:mixed /proc est monté en rw, mais /proc/sys et /proc/sysrq-trigger sont montés en ro
        proc:rw /proc est monté en rw
        sys:mixed /sys en ro, /sys/devices/virtual/net en rw
        sys:ro monté en ro
        sys:rw monté en rw
        cgroup:mixed Monte un tmpfs sous /sys/fs/cgroup, créé les répertoires pour toutes les hiérarchies auquel le conteneur est ajouté, créé les sous-répertoires avec le nom du cgroup, et mount le cgroup du conteneur dans ce répertoire. Le conteneur sera capable d'écrire dans son propre cgroup mais pas les parents, vu qu'ils sont remontés en ro
        cgroup:ro tout en ro
        group:rw en rw
        cgroup-full:mixed Un peu plus simplifié que cgroup:mixed, peut laisser fuiter des information dans le conteneur.
        group-full:ro tout en ro
        cgroup-full:rw tout en rw

lxc.rootfs Emplacement du système de fichier racine pour le conteneur. Peut être un fichier image, un répertoire, ou un périphériques block. Non spécifié, partage celui de l'hôte
lxc.rootfs.mount Où monter récursivement lxc.rootfs avant le pivot.
lxc.rootfs.options Options de montage supplémentaires pour rootfs
lxc.rootfs.backend Spécifie le type de backend rootfs à utiliser (dir, zfs,...).
lxc.cgroup.[subsystem name] Spécifie la valeur cgroup à définir.
lxc.cap.drop Capabilities à supprimer dans le conteneur, sans le préfix CAP.
lxc.cap.keep Spécifie la capabilitie à conserver dans le conteneur. none supprime toutes les capabilities
lxc.aa_profile Spécifie le profile apparmor sous lequel le conteneur devrait fonctionner. unconfined désactive apparmor. unchanged conserve le profile du conteneur parent.
lxc.aa_allow_incomplete les profiles apparmor sont basés sur des chemins. Donc des restrictions de fichier nécessitent des restrictions de montage. Cependant, ces restrictions de montage ne sont pas encore implémentées dans le kernel. À 0, le conteneur n'est pas démarré si le kernel n'a pas les fonctions de montage apparmor, donc un regression après une mise à jours kernel sera détectée.
lxc.se_context Spécifie le contexte SELinux sous lequel le conteneur devrait être lancé ou unconfined_t. (ex: system_u:system_r:lxc_t:s0:c22)
lxc.seccomp Spécifie un fichier contenant la configuration seccomp à charger avant que le conteneur démarre.
lxc.id_map Un conteneur peut être démarré dans un namespace user privé avec un mappage. Contient 4 champs séparés par des espaces:

        1 'u', 'g', ou 'b' pour both
        2 L'UID/GID vu dans le namespace
        3 L'UID/GID vu dans l'hôte
        4 Le nombre d'uid/gid consécutifs à mapper

hooks

   Les hooks de conteneur sont des programmes ou des scripts qui peuvent être exécutés à divers moments dans la durée de vie d'un conteneur. Quand un hook est exécuté, des informations sont passées en argument et via les variables d'environnement:

        - Le nom du conteneur
        - Section (toujours 'lxc')
        - Type de hook (ex: 'clone' ou 'pre-mount')
        - Arguments additionnels.
        LXC_NAME Nom du conteneur
        LXC_ROOTFS_MOUNT Chemin du rootfs monté
        LXC_CONFIG_FILE Chemin du fichier de configuration de conteneur
        LXC_SRC_NAME Dans le cas d'un hook clone, c'est le nom du conteneur original
        LXC_ROOTFS_PATH valeur de lxc.rootfs pour le conteneur

lxc.hook.pre-start Un hook à lancer dans l'espace de nom de l'hôte avant que le ttys du conteneur, consoles ou mountages soient effectués.
lxc.hook.pre-mount Un hook à lancer dans l'espace de nom fs du conteneur avant que le rootfs ne soit up. Permet la manipulation du rootfs (ex: fs chiffré)
lxc.hook.mount Un hook à lancer dans l'espace de nom du conteneur après que le montage ait été effectué, mais avant le pivot_root
lxc.hook.autodev Un hook à lancer dans l'espace de nom du conteneur après que le montage ait été effectué, mais avant le pivot_root si lxc.autodev == 1. Permet d'assister le remplissage de /dev
lxc.hook.start Un hook à lancer dans l'espace de nom du conteneur immédiatement après l'exécution du init. Nécessite un programme dans le conteneur
lxc.hook.stop Un hook à lancer dans l'espace de nom de l'hôte après que le conteneur ait été éteind. Pour chaque espace de nom un argument est passé au hook contenant le type de namespace et un fichier qui peut être utilisé pour obtenir un fd vers le namespace correspondant.
lxc.hook.post-stop Un hook à lancer dans l'espace de nom de l'hôte après que le conteneur ait été stoppé.
lxc.hook.clone Un hook à lancer quand le conteneur est cloné.
lxc.hook.destroy Un hook à lancer quand le conteneur est détruit

   Des variables d'environnement sont disponible aux hooks pour fournir des informations de configuration. Toutes les variables ne sont pas valides dans tous les contextes. En particulier, tous les chemins sont relatifs au système hôte et donc non valides durant lxc.hook.start

LXC_NAME Nom du conteneur
LXC_CONFIG_FILE Chemin du fichier de configuration de conteneur
LXC_CONSOLE Chemin de la console de sortie du conteneur si non null
LXC_CONSOLE_PATH Chemin de la console de sortie de log du conteneur si non null
LXC_ROOTFS_MOUNT Chemin du rootfs monté dans l'hôte
LXC_ROOTFS_PATH Valeur de lxc.rootfs pour le conteneur
LXC_SRC_NAME Dans le cas d'un hook clone, c'est le nom du conteneur original
LXC_TARGET Seulement pour le hook stop. Vaut stop ou reboot
LXC_CGNS_AWARE Non définis, cette version de lxc ne gère pas les namespaces cgroup. Ne garantit pas que ces namespaces sont activés dans le kernel.

lxc.loglevel Niveau de log de 0 (trace) à 8 (fatal)
lxc.logfile Fichier où logger les infos
lxc.start.auto (bool) Indique si le conteneur devrait être auto-démarré.
lxc.start.delay Délai d'attente avant que le conteneur suivant ne soit démarré
lxc.start.order Un entier utilisé pour trier les conteneurs durant l'auto-démarrage
lxc.monitor.unshare Si non 0, le namespace de montage sera non partagé avec l'hôte avant l'initialisation du conteneur (avant le hook pre-start). Nécessite CAP_SYS_ADMIN.
lxc.group Clé multivalué pour placer le conteneur dans un groupe.

lxc.environment Permet de passer des variables d'environnement au conteneur. Noter que ces variables sont visibles dans l'hôte dans /proc/PID/environ

Exemples de configuration

Exemple de configuration réseau:
lxc.utsname = myhostname
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.hwaddr = 4a:49:43:49:79:bf
lxc.network.ipv4 = 10.2.3.5/24 10.2.3.255
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597

uid/gid mapping
lxc.id_map = u 0 100000 10000
lxc.id_map = g 0 100000 10000

cgroup
lxc.cgroup.cpuset.cpus = 0,1
lxc.cgroup.cpu.shares = 1234
lxc.cgroup.devices.deny = a
lxc.cgroup.devices.allow = c 1:3 rw
lxc.cgroup.devices.allow = b 8:0 rw

Exemple de configuration complexe:
lxc.utsname = complex
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.hwaddr = 4a:49:43:49:79:bf
lxc.network.ipv4 = 10.2.3.5/24 10.2.3.255
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597
lxc.network.ipv6 = 2003:db8:1:0:214:5432:feab:3588
lxc.network.type = macvlan
lxc.network.flags = up
lxc.network.link = eth0
lxc.network.hwaddr = 4a:49:43:49:79:bd
lxc.network.ipv4 = 10.2.3.4/24
lxc.network.ipv4 = 192.168.10.125/24
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596
lxc.network.type = phys
lxc.network.flags = up
lxc.network.link = dummy0
lxc.network.hwaddr = 4a:49:43:49:79:ff
lxc.network.ipv4 = 10.2.3.6/24
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3297
lxc.cgroup.cpuset.cpus = 0,1
lxc.cgroup.cpu.shares = 1234
lxc.cgroup.devices.deny = a
lxc.cgroup.devices.allow = c 1:3 rw
lxc.cgroup.devices.allow = b 8:0 rw
lxc.mount = /etc/fstab.complex
lxc.mount.entry = /lib /root/myrootfs/lib none ro,bind 0 0
lxc.rootfs = /mnt/rootfs.complex
lxc.cap.drop = sys_module mknod setuid net_raw
lxc.cap.drop = mac_override
^
25 novembre 2016

htmlpdflatexmanmd




lxc.system.conf-2.0.5

lxc.system.conf-2.0.5

Fichiers de configuration du système LXC

   Ce fichier est localisé dans /etc/lxc/lxc.conf ou ~/.config/lxc/lxc.conf. Ce fichier est utilisé pour définir des valeurs telles que les chemins de recherche par défaut et les paramètres de stockage pour LXC.

lxc.lxcpath Emplacement dans lequel tous les conteneur sont stockés
lxc.default_config Emplacement de la configuration du conteneur par défaut
lxc.cgroup.use liste de cgroup à définis. Si aucun n'est définis, tous les contrôleurs sont utilisés
lxc.cgroup.pattern Chaîne utilisée pour générer le chemin cgroup (ex: lxc/%n)
lxc.bdev.lvm.vg Nom du volume groupe par défaut
lxc.bdev.lvm.thin_pool nom du pool thin par défaut
lxc.bdev.zfs.root Nom du root ZFS par défaut

^
25 novembre 2016

htmlpdflatexmanmd




lxc.usernet-2.0.5

lxc.usernet-2.0.5

Administration de réseau utilisateur non-privilégié

   /etc/lxc/lxc-usernet contrôle les limites du programme lxc-user-nic pour les interfaces réseau qu'un utilisateur non-privilégié peut créer. Le fichier de configuration consiste d'entrées sous la forme:

  user|@group type bridge number

        user|@group username ou nom du groupe auquel l'entrée s'applique
        type Type de réseau autorisé. Seule veth est supporté actuellement
        bridge nom du bridge auquel les interfaces peuvent être attachés
        number Nombre d'interfaces réseau du type donné que l'utilisateur/groupe peut attacher au bridge donné.

^
31 mars 2017

htmlpdflatexmanmd




netdevstat

netdevstat

Outil d'enregistrement d'activité réseaux

   netdevstat est un script systemtap pour enregistrer l'activité réseau des processus et affiche des statistiques pour les opérations de transmission/réception

OPTIONS

update interval Définis l'interval d'échantillonage
total duration Définis le temps total de mesure en secondes
display histogram Si présent, l'histogramme sera affiché en fin de mesure
^
13 mars 2010

htmlpdflatexmanmd




resolv.conf

resolv.conf

Configuration des serveurs DNS

   Ce fichier contient le(s) serveur(s) DNS. Ce fichier est automatiquement mis à jour par le client DHCP. Si vous utilisez une configuration réseau fixe, il est necessaire de renseigner ce fichier. Pour spécifier un serveur DNS utiliser la directive nameserver. Vous pouvez spécifier jusqu’à 3 serveurs DNS.

OPTIONS

domain indique le domaine local de la machine. Sans cette options, déduit le domain via gethostname(2), sinon le domain est root.
search indique les domaines de recherche. Normalement déterminé par domain, permet de spécifier des domaines de recherche spécifiques (max 6 - 256 caractères). Pour une liste de sous domaines, utiliser l’option ndots pour éviter les attaques MITM. Cette options peut générer beaucoup de trafic réseau si les domaines listés ne sont pas locaux.
debug active le débuggage
ndots:n seuil pour le nombre de ’.’ qui doivent apparaître dans un nom donné à res_query(3) avant qu’une requête absolue initiale soit faite. défaut : 1, ce qui signifie que si le nom contient un ’.’, il sera d’abord tenté comme nom absolu.
timeout:n Délai en second de timeout d’un requête (défaut 30s)
attemps:n Nombre de tentative de requête avant de retourner une erreur (défaut 5)
rotate effectue un round-robin sur la liste des serveur de noms spécifiés
no-check-names Ne vérifie pas si les noms contiennent des caractères invalide tels que ’_’, caractères non-ascii ou des caractères de contrôle
int6 Affecte les requêtes AAAA avant une requête A dans la fonction gethostbyname(3) et le mappage des réponses IPv4 dans une forme tunnelisée IPv6 si aucun enregistrement AAAA n’est trouvé mais qu’un enregistrement A existe.
ip6-bytestring Les recherches IPv6 inverse sont faites en utilisant le format décrit dans la RFC 2673. Désactivé, le format nibble est utilisé.
ip6-dotint/no-ip6-dotint Désactivé, les recherches inverses IPv6 sont faites dans la zone ip6.int (déprécié), sinon dans ip6.arpa. Activé par défaut
edns0 Active le support pour les extensions DNS (RFC2671)

Exemples

nameserver 81.253.149.9
nameserver 80.10.246.3
nameserver 192.169.1.1
domain uubu.fr
search uubu.fr
options timeout:3
options attempts:4
options rotate
^
31 mars 2017

htmlpdflatexmanmd




scomes

scomes

Outil d'analyse des ressources système

   scomes est un script systemtap pour regarder l'activité d'un processus. compteur d'appels système, ticks userspace et kernelspace, octets lus et écris, octets reçus et transmis, et interrogation syscalls.

OPTIONS

binary fichier binaire à exécuter
timer affiche des statistiques toutes les n secondes
^
03 novembre 2011

htmlpdflatexmanmd




shells

shells

Fichier texte contenant le chemin complet des shells valides

   /etc/shells contient la listes de shells valides, chemin complet inclus, un par ligne.

^
31 mars 2017

htmlpdflatexmanmd




tuned

tuned

Service de personnalisation système dynamique

   tuned est un service de personnalisation du système dynamique qui paramètre le système en fonction de l'utilisation

OPTIONS

-c CONFFILE, --conffile=CONFFILE Fichier de configuration. Défaut: /etc/tuned.conf
-d, --daemon Lance en tâche de fond
-d, --debug Mode debug
-l [LOG], --log[=LOG] Log dans le fichier spécifié. Défaut: /var/log/tuned/tuned.log
--no-dbus N'attache pas à DBus
-P [PID], --pid[=PID] Écris le pid dans le fichier spécifié. Défaut: /run/tuned/tuned.pid
-p PROFILE, --profile PROFILE Profile à activer
^
31 mars 2017

htmlpdflatexmanmd




tuned-adm

tuned-adm

Outil d'administration de gestion des profiles

   Cette commande permet de sélectionner les profiles. De nombreux profiles prédéfinis sont déjà inclus, et sont stockés dans /usr/lib/tuned, les profiles utilisateur sont dans /etc/tuned.

OPTIONS

list Liste les profiles disponible
active Affiche le profile courant
profile PROFILE Sélectionne le profile à utiliser
verify Vérifie le profile courant avec les paramètres du système et affiche si les informations correspondent
recommend Affiche le profile recommandé pour le système. Actuellement seul une détection statique est implémentée
off Décharge les paramètres
^
10 mai 2017

htmlpdflatexmanmd




tuned-main.conf

tuned-main.conf

fichier de configuration globale tuned

OPTIONS

daemon=BOOL définis si tuned est utilisé comme service ou non.
dynamic_tuning=bool Définis si le tuning dynamique est activé
sleep_interval=INT délai entre chaque réveil de tuned et de vérification des évènements
update_interval=INT Délai de mise à jour dynamique
recommend_command=BOOL Contrôle si la fonctionnalité recommend est permise ou non
reapply_sysctl=BOOL Contrôle si les paramètres sysctl sont réappliqués depuis /etc/sysctl.conf et les autres emplacement de configuration de sysctl.
default_instance_priority=INT Priorité de l'instance par défaut (défaut: 0)
^
31 mars 2017

htmlpdflatexmanmd




tuned.conf

tuned.conf

Définition de profile tuned

   Les profiles sont stockés dans /etc/tuned/‹profile name›/tuned.conf ou /usr/lib/tuned/‹profile name›/tuned.conf.

[main]

include= Inclus le fichier de configuration spécifié.

PLUGINS

   Toutes les autres sections définissent un plugin. Le nom de la section est le nom du plugin et est utilisé dans les logs. Il ne peut y avoir qu'un plugin de type particulier. Toutes les sections plugin peut contenir les éléments suivants:

        type= type de plugin. (audio, bootloader, cpu, disk, eeepc_she, mounts, net script, selinux, scheduler, sysctl, sysfs, usb, video, vm.
        devices= liste de périphérique qui doivent être paramétrés par ce plugin
        replace=1 S'il y a conflit entre 2 plugins, définis le poid qui permet de choisir le plugin à utiliser
^
11 novembre 2011

htmlpdflatexmanmd




udev

udev

Gestion des périphériques dynamiques

Description

   udev fournis un système d'évènements périphériques, de gestion des permissions des nœuds périphériques, et peut créer des liens symboliques additionnels dans /dev, ou renommer des interfaces réseaux. Le kernel assigne simplement des noms de périphériques basés sur l'ordre de découverte.

  udevd reçois les uevents directement du kernel quand un périphérique est ajouté ou enlevé du système, ou quand son état change. Quand udev reçois un évènement périphérique, il regarde si des règles dans sa configuration correspondent, peut fournir des informations additionnelles à stocker dans la base de données udev, ou des informations pour créer des noms de liens. Tous les processus d'information de périphériques sont stockés dans la base de données udev et envoyés au souscripteur d'évent.

Configuration

   Les fichiers de configuration sont dans /etc/udev et /lib/udev. Toutes les lignes vides, ou commençant par '#' seront ignorés

Fichier de configuration

   Le fichier de configuration principal est /etc/udev/udev.conf. Il consiste de variables permettant à l'utilisateur d'écraser les valeurs

udev par défaut. Les variables sont :
udev_root Spécifie où placer les nœuds de périphériques dans le système de fichier (défaut /dev)
udev_log Le logging priority.

Fichiers de règles

   Les règles par défaut de udev sont lues depuis les fichiers dans /lib/udev/rule.d/, les fichiers personnalisés dans /etc/udev/rules.d/, et les fichiers temporaires dans /dev/.udev/rules.d/. Tous les fichiers de règles sont triés et traités dans l'ordre lexical, sans regarder dans quel répertoire ils sont. Les fichiers dans /etc/udev/rules.d ont une précédence sur les fichiers de même nom dans /lib/udev/rules.d.

   Les fichiers de règles doivent se terminer par .rules, sinon ils sont ignorés. Chaque ligne dans un fichier de règle contient au moins une paire de clé/valeur. Il y'a 2 types de clé, les clés de correspondance et les clés d'assignement. Si toutes les clés de correspondance correspondent avec leurs valeurs, la règle s'applique et les clés d'assignement reçoivent la valeur spécifiée. Une règle de correspondance peut renommer une interface réseau, ajouter les liens pointant vers des nœuds de périphériques, ou lancer un programme spécifique.

   Une règle consiste d'une ou plusieurs paires de clé/valeur séparés par un ','. Chaque clé a une opération distincte, dépendant de l'opérateur utilisé

Opérateurs

== compare l'égalité
!= Compare l'inégalité
= Assigne une valeur à une clé. Les clés qui représentent une liste, sont réinitialisées avec cette valeur simple.
+= Ajoute la valeur à une clé qui maintient une liste
:= Assigne une valeur à une clé, puis empêche de modifier cette valeur ultérieurement.

   Les noms des clés peuvent être utilisés pour faire correspondre les propriétés des périphériques. Certains périphériques matchent également des clés avec les propriétés des périphériques parent dans sysfs. Si plusieurs clés qui match un périphérique parent sont spécifié dans une simple règle, toutes ces clés doivent matcher à un et le même périphérique parent.

ACTION Match le nom de l'action
DEVPATH Match le devpath du périphérique
KERNEL Match le nom du périphérique
NAME Match le nom du nœud ou de l'interface réseau
SYMLINK Match le nom d'un lien ciblant le nœud
SUBSYSTEM Match le nom du pilote du périphérique
ATTR{filename} Match les valeurs d'attribut sysfs du périphérique.
KERNELS Cherche le devpath supérieur pour un nom de périphérique correspondant
SUBSYSTEMS Cherche le devpath supérieur pour un nom de sous-système de périphérique correspondant
DRIVERS Cherche le devpath supérieur pour un nom de pilote de périphérique correspondant
ATTRS{filename} Cherche le devpath supérieur pour un périphérique qui match les valeurs d'attributs sysfs. Si plusieurs ATTRS sont spécifiés, tous doivent matcher sur le même périphérique.
ENV{key} Match avec une valeur de propriété de périphérique.
TAG Match avec un tag de périphérique
TEST{masque octal} Test l'existence d'un fichier. Un masque octal peut être spécifié.
PROGRAM Exécute un programme. La clé est vraie, si le programme retourne un succès. Les propriétés du périphérique sont disponibles pour le programme. La sortie du programme affichée dans stdout est redirigée dans la clé RESULT
RESULT Match la chaîne retournée par un appel PROGRAM.

   De nombreux champs supportent les motifs type shell:

Match aucun, ou un certain nombre de caractères
Match un simple caractère
[] Match un simple caractère spécifié dans les crochets.

   Les clés suivantes peuvent être assignées :

NAME Le nom du nœud de périphérique. Généralement, le kernel définis le nom du nœud par défaut, ou créé et supprime le nœud avant que udev reçoive l'event. Changer le nom du nœud créés des inconsistances et n'est pas supportées. Si le kernel et NAME spécifient des noms différents, une erreur sera loggée. Udev ne modifie que les permissions des nœuds et crée des liens additionnels, qui est une bonne manière pour renommer un nœud. Les liens ne doivent jamais être en conflit avec des noms de nœud.
SIMLINK Le nom de lien ciblant un nœud. Chaque règle qui match va ajouter cette valeur à la liste des liens à créer. Plusieurs liens peuvent être créés en les séparant par un espace. Si plusieurs périphériques demandent le même nom de lien, le lien pointera toujours vers le périphérique avec la plus haute link_priority. Si ce périphérique est supprimé, le lien sera réévalué. Sans link_priority spécifié, le périphérique obtenant le lien ne peut être prédit.
OWNER, GROUP, MODE Les permissions pour le nœud périphérique.
ATTRKEY La valeur qui devrait être écrite dans un attribut sysfs du périphérique de l'évènement
ENVKEY Définis une valeur de propriété du périphérique. Les noms de propriété avec un '.' ne sont pas stockés dans la base ou exportés vers les outils externes ou évènements.
TAG Attache un tag à un périphérique. C'est utilisé pour filtrer les évènements pour les utilisateurs de la fonctionnalité de monitoring de libudev. L'implémentation peut seulement fonctionner efficacement si seulement quelques tags sont attachés aux périphériques.
RUN Ajoute un programme à la liste des programmes à exécuter pour un périphérique spécifique. Cela peut seulement être utilisé pour des tâche très courtes. Les tâches longues bloquent le processus d'évènement. Si RUNfail_event_on-error est spécifié, et que le programme ne retourne pas 0, l'évènement sera marqué comme échoué. Sans chemin absolu, le programme doit être dans /lib/udev. Les chemins avec des espaces peuvent être spécifié entre ''
LABEL Label nommé où un GOTO peut sauter
GOTO Saute à LABEL
IMPORT{type} Importe des variables comme propriétés de périphérique, en fonction de son type:

        program Exécute un programme externe.
        file Importe un fichier texte comme valeur assignée, qui doit être au format de clé d'environnement
        db Importe une simple propriété spécifiée comme valeur assignée la base du périphérique courrant. Ne fonctionne que si la base est déjà remplie par un précédent évènement.
        cmdline Importe une simple propriété depuis la ligne de commande du kernel. Pour de simples flags la valeur de la propriété sera à 1.
        parent Import les clés stockées du périphérique parent.

Sans option, udev choisis entre program et file en fonction du bit exécutable des permissions de fichier
WAIT_FOR Attend qu'un fichier devienne disponible ou 10sec. Le chemin est relatif au périphérique sysfs. Sans chemin spécifié, attend qu'un attribut apparaisse.

Options

link_priority=value Spécifie la priorité des liens crées. (Défaut: 0)
event_timeout= Nombre de seconde qu'un event attend les opérations avant de se terminer de lui-même.
string_escape=none|replace Les caractères non-sûres et de contrôle sont remplacés dans les chaînes utilisé pour le nommage des périphériques.
static_node= Applique les permissions spécifiée dans cette règle à un nœud de périphérique statique avec le nom spécifié. Les nœuds statique peuvent être des modules kernel, ou copiés depuis /lib/udev/devices. Ces nœuds peuvent ne pas avoir de module kernel correspondant au moment où udev est démarré, et permet de piloter les modules chargeable du kernel.
watch Recherche un nœud avec inotify, quand il est fermé après avoir été ouvert en écriture, un uevent de changement sera synthétisé.
nowatch Désactive la recherche de nœud avec inotify

   Les champs NAME, SYMLINK, PROGRAM, OWNER, GROUP, MODE et RUN supportent les substitutions de chaîne dans le style printf. Les substitutions sont:

Options

$kernel, %k Le nom kernel pour ce périphérique
$number, %n Le numéro kernel pour ce périphérique. Par exemple 'sda3' a comme nombre kernel 3.
$devpath, %p Le devpath du périphérique
$id, %b Le nom du périphérique matché pendant la recherche de devpath supérieur pour SUBSYSTEMS, KERNELS, DRIVERS et ATTRS
$driver Le nom du pilote du périphérique matché pendant la recherche du devpath supérieur pour SUBSYSTEMS, KERNELS, DRIVERS et ATTRS
$attrfile, %sfile La valeur d'un attribut sysfs trouvé au périphérique, où toutes les clés de la règle ont matchés.
$envkey, %Ekey Une valeur de propriété de périphérique
$major, %M Le numéro majeur kernel pour le périphérique
$minor, %m Le numéro mineur kernel pour le périphérique
$result, %c La chaîne retournée par le programme externe lancé avec PROGRAM. Une seule partie de la chaîne peut être sélectionnée en spécifiant le numéro comme attribut %cN. Si le numéro est suivi d'un '+', cette partie + plus celles restantes sont substituées.
$parent, %P Le nom du nœud parent
$name Le nom courant du nœud
$links La liste des liens courants, séparés par un espace.
$root, %r La valeur udev_root
$sys, %S Le point de montage sysfs
$tempnode, %N Le nom d'un nœud créé temporairement pour fournir l'accès au périphérique depuis un programme externe avant que le vrai nœud soit créé.
%% Le caractère %
$$ Le caractère $
^
11 novembre 2011

htmlpdflatexmanmd




udevadm

udevadm

Utilitaire de gestion udev

Description

   Utilitaire de gestion d'udev. Il attend un commande et des options spécifiques et contrôle udev en temps réel, les requêtes d'event kernel, gère la queue d'event et fournit des mécanismes de debuggage.

udevadm info

   Requête la base udev pour les informations de périphérique. Peut également requêter les propriétés d'un périphérique dans sa représentation sysfs pour aider à créer des règles udev.

--query=type Requête la base pour un type spécifié de périphérique de données. Nécessite --path ou --name pour identifier le périphérique. Les requêtes valides sont name, symlink, path, property et all.
--path=devpath le devpath du périphérique à requêter
--name=file Le nom du nœud ou du symlink
--root Le répertoire root udev : /dev. Utilisé avec name ou symlink, la requête retourne le chemin absolu.
--attribut-walk Affiche toutes les propriétés sysfs qui peuvent être spécifiés dans les règles udev. Affiche tous les périphériques dans la chaîne, jusqu'à la racine de sysfs.
--device-id-of-file=file Affiche les numéros majeur/mineur du périphérique.
--export-db Exporte le contenu de la base udev

udevadm trigger

   Requête les events de périphérique du kernel. Principalement utilisé pour rejouer les event lors du branchement à froid.

--verbose Affiche la liste des périphériques qui sont pilotés
--dry-run ne pas piloter l'event actuel
--type=type Pilote un type spécifique de périphérique. Les types valides sont : devices, subsystems, failed (défaut : devices)
--action=action Type d'event à piloter. Défaut : change
--subsystem-match=subsystem Pilote les events pour les périphériques appartenant à un sous-systèmes. Peut-être spécifié plusieurs fois et support les motifs type shell.
--subsystem-nomatch=subsystem Ne pilote pas les event pour les périphérique qui appartiennent à un subsystem. Peut-être spécifié plusieurs fois et support les motifs type shell.
--attr-match=attribute=value Pilote les events pour les périphériques qui match un attribut sysfs. Si une valeur est spécifiée, vérifie avec la valeur de l'attribut. Non spécifié, vérifie l'existence de l'attribut. peut-être spécifié plusieurs fois.
--attr-nomatch=attribute=value Ne pilote pas les events pour les périphériques qui match un attribut sysfs. Si une valeur est spécifiée, vérifie avec la valeur de l'attribut. Non spécifié, vérifie l'existence de l'attribut. peut-être spécifié plusieurs fois.
--property-match=property=value Pilote les events pour les périphériques qui match une propriété. Peut-être spécifié plusieurs fois et supporte les motifs type shell
--tag-match=property Pilote les events pour les périphériques qui match le tag. Peut-être spécifié plusieurs fois.
--sysname-match=name Pilote les events pour les périphériques qui match un nom de périphérique. Peut-être spécifié plusieurs fois et supporte les motifs type shell.

udevadm settle

   Regarde la queue d'event udev, qui quitte si tous les events actuels sont handlés.

--timeout=seconds Nombre de seconde max à attendre que la queue d'event soit vide (défaut 180). A 0, retourne immédiatement.
--seq-start=seqnum Attend seulement les event après le numéro de séquence donné.
--seq-end=seqnum Attend seulement les events avant le numéro de séquence donné.
--exit-if-exists=file stop l'attente de l'existence du fichier
--quiet mode silencieux

udevadm control

   Modifie l'état interne de udevd

--log-priority=value Définis le niveau de log. peut être défini sous forme numérique ou err, info et debug.
--stop-exec-queue Signal à udevd de stopper l'exécution des nouveaux events. Les nouveaux events seront mis en queue
--start-exec-queue Signal à udevd d'exécuter les events
--reload-rules Recharge les fichiers de règles. Peu utile vu qu'udevd détecte automatiquement les changements
--property=KEY=value Définis une propriété global pour tous les events
--children-max=value Définis le nombre maximum d'events que udevd va manipuler simultanément.

udevadm monitor

   Écoute les events et les uevents kernels sortis par une règle udev et affiche le devpath de l'event. Peut être utilisé pour analyser le timing d'event, en comparant le timestamps des uevent kernel et des events udev.

--kernel Affiche les uevents kernel
--udev Affiche les events udev après le traitement des règles
--property Affiche également les propriétés de l'event
--subsystem-match=string[/string] Filtre les events par sous-système[type de périphériques]. Seuls les event udev avec un sous-système correspondant vont passer.
--tag-match=string Filtre les events par propriété. Seul les event udev avec le tag donné vont passer.
udevadm test simule un event udev pour un périphérique donné, le devpath doit être spécifié après les options
--action=string La chaîne action
--subsystem=string La chaîne sous-système
^
11 novembre 2011

htmlpdflatexmanmd




udevd

udevd

Service de gestion des périphériques dynamiques

Description

   udevd écoute les évènements kernel. Pour chaque évènement, udevd exécute les instructions correspondant spécifiées dans les règles udev. Au démarrage, le contenu de /lib/udev/devices est copié dans /dev. Si les modules kernel spécifient des noeuds de périphériques statiques, ces nœuds sont créés même sans un périphérique kernel correspondant, permettant un chargement à la demande de ces modules. Les permissions qui match dans les règles udev sont appliquées à ces nœuds de périphérique statiques.

  Le mode de fonctionnement d'udevd peut être changé avec udevadm control

OPTIONS

--daemon daemonise udevd
--debug Mode debug
--children-max= Nombre max d'évènements exécutés en parallèles
--exec-delay= Nombre de secondes d'exécution des instructions RUN.
--resolve-names= Spécifie quand udev devrait résoudre les noms des utilisateurs et des groupes. À early (défaut) les noms sont résolus quand les règles sont parcourues. À late, résout pour chaque event, à never, ne résout jamais les noms et tous les périphériques seront possédés par root.
^
31 mars 2017

htmlpdflatexmanmd




varnetload

varnetload

Outil pour créer un trafficvarnetload réseau

   varnetload est un script python pour créer un traffic réseau reproductible. Pour l'utiliser correctement, il faut un serveur http présent sur le réseau LAN où on peut envoyer des fichiers. Uploader un grand fichier sur le serveur http.

OPTIONS

delay Délai entre les téléchargements individuels en ms. Défaut: 1000
time to run Définis le temps total d'exécution en secondes. Défaut: 60
url url de la ressource. Défaut: http://myhost.mydomain/index.html