Mémento de commandes d’administration pour AIX (≤ 5.x)
Découverte du Système |
|
Commandes | Description |
# oslevel –r | version d’Aix et Maintenance Level (ml) ou TL |
# lslpp –l bos.mp | Basic Operating System – Multi Processor |
# uname –a | nom machine + version OS |
# uname -M | modèle de la machine |
# uptime | durée de démarrage & index de charge (2 peu chargée – 5/6 assez chargée – >10 pb) |
# lsps -a | affiche le swap |
# bootinfo -r | taille de la mémoire réelle en Kb |
# bootinfo –s hdisk# | taille du disque # |
# bootinfo -b | disque utilisé lors du dernier boot |
# bindprocessor -q | nombre de processeur(s) |
# prtconf | displays system configuration information |
# lsitab –a | voir le fichier /etc/inittab |
# ifconfig –a | liste des interfaces réseau & ip |
# w ou who ou users | utilisateurs connectés |
# w nomduser | aperçu de l’activité de la machine |
-h | supprime l’entête |
-s | affichage restreint nom d’utilisateur |
# whereis nomdelacommande | affiche le chemin complet d’accès à tous les répertoires contenant la commande |
# which nomdelacommande | affiche le chemin complet d’accès à une commande |
# /etc/motd : Message Of The Day | c’est à cet endroit que se trouve le message lors de la connexion d’un user |
# echo $TZ | affiche la Time Zone du serveur |
# lslicense | information sur la licence |
# echo $ODMDIR | chemin de la base de données ODM |
# bootlist –om normal | information sur la bootlist mode normal |
# bootlist –m normal hdisk# | modifie la boolist ; l’os démarrera sur le hdisk# |
# instfix –i | grep ML | liste des Maintenance Levels |
# lslpp –l | liste des produits installés |
# lssrc -a | liste des sous-systèmes active/inoperative |
# lsdev -CH | périphériques disponibles CuDv (ODM) |
# lsdev –Cc disk | périphériques par classe (disk) |
# lsdev -PH | périphériques prédéfinis PdDv (ODM) |
# lsdev –Pr class | liste des classes de périphériques |
# lsdev –Cs scsi –H –F “name status location connwhere description” | s=sous-classe, H=entête, F=champs |
# lscfg -v | infos détaillées sur la configuration du système |
# lscfg –vl hdisk0 | infos détaillées sur hdisk0 |
# lsps -a | configuration de l’espace de pagination |
# sysdumpdev | configuration du dump |
# lsattr –El en0/en1 | caractéristiques des objets |
# lsattr –El sys0 | une partie des paramètres noyau |
# lsattr -EH -l mem0 | infos sur la mémoire physique |
# no -a | liste des paramètres configurables du réseau. |
(modifiable à chaud ou via /etc/rc.net) | |
# lsparent –C –k ent | liste des cartes réseau |
# rcpinfo –p | liste des programmes RPC enregistrés auprès du portmapper |
# getconf -a | grep KERN | affiche le bitmode (32, 64, …) ≥ AIX 5.i |
# lslpp –l | liste des logiciels installés |
# lslpp –L all | liste des logiciels installés |
# instfix icqk 4330-08_AIX_ML | grep “:=:” | affiche tous les composants qui sont en version 4.3.3 et en ml 08 |
Processus |
|
Commandes | Description |
# ps –eaf | information sur les processus |
# kill –l | affiche les signaux possible à envoyer à un processus |
# fuser FS | affiche les processus accrochés à un FS (remplacé par LSOF dans les versions AIX plus récentes) |
# ps auxw | more (ou ps gaux |more) | affiche l’utilisation des processeurs & mémoire par processus |
# echo $? | affiche le code erreur de la dernière commande passée |
Fichers et Répertoires |
|
Commandes | Description |
# file <fichier> | affiche la nature d’un fichier |
# istat | examine les inodes. Donne, entre autre, la date du dernier accès d’un fichier |
# pwd | affichage du répertoire courant |
# tar cvf nomdarchive nomdefichier | création de l’archive |
# tar tvf nomdarchive | visualisation de l’archive |
# tar rvf nomdarchive nomdefichier | rajout dans l’archive |
# tar xvf nomdarchive nomdefichier | restauration de l’archive |
# du –akx | sort –rn | more | affiche la taille (en blocs de 1024 bits) des fichiers utilisés uniquement sur le FS |
# ls –s F L | crée un lien symbolique sur F nommé L |
# wc –c file1 | compte les caractères de file1 |
find /tmp -type f -mtime +600 -exec rm {} \; | purger dans /tmp les fichiers de + de 600 jours |
Utilisation du LVM |
|
Commandes | Description |
Physical Volume : chaque disque est désigné par un Physical Volume Identifier. Le PVID est stocké sur le disque physique lui-même et dans la base ODM. | |
Volume Group : chaque volume group est désigné par un Volume Group Descriptor Area. Une copy de la VGDA est stockée sur chaque disque du Volume Group. | |
Logical Volume : chaque logical volume contient un Logical Volume Control Block qui est stocké dans les 512 premiers octets du logical volume. La LVCB contient des informations sur la date de création, les mirroring, les points de montage, etc. | |
ODM : la base Object Data Manager est utilisée par le LVM pour stocker des informations. Il existe un objet ODM appelé vg-lock. Lorsqu’une commande LVM est passée sur un VG, un lock est positionné sur le VG jusqu’à la fin de cette commande. Si pour une raison quelconque le lock persiste après la fin de la commande, le VG peut être déverrouillé grâce à varyonvg –b qui doit être passé sur un VG déjà activé. | |
mkvg [-d MaximumPhysicalVolumes][-B][-G][-f] [-i][-c][-x] [-m MaxPvSize][-n][-s Size][-t factor] [-V MajorNumber][-y VolumeGroup] PhysicalVolume | creation d’un VG (un seul fichier special en mode caractère) |
# mkvg –y “vgname” hdisk2 hdisk3 | création d’un VG vgname qui comporte les disques hdisk2 et hdisk3 |
mklv [-a Position][-b BadBlocks][-c Copies][-d Schedule] [-e Range][-i][-L Labek][-m MapFile][-r Relocate] [-s Strict][-t Type][-u UpperBound][-v Verify] [-y NewLogicalVolume | -Y Prefix][-S StripeSize][-U Userid] [-G Groupid][-P Modes] VolumeGroup Number [PhysicalVolume …] | création d’un LV |
# mklv –y lv_name –c rootvg 2 hdisk0 hdisk2 | création lv_name mirroré avec 2 LPs |
crfs –v VfsType {-g VolumeGroup|-d Device} [-l LogPartitions] –m MountPoint [-n NodeName] [-u MountGroup] [-A {yes|no}] [-p {ro|rw}] [-a Attribute=Value…] [-t{yes|no}] | création d’un FS |
# crfs –v jfs –d lvname –m /mnt –A yes –p rw | |
lsvg [-L][-o]|[-n DescriptorPhysicalVolume]|[-i][-I-M|-p] | liste des VG |
# lsvg –l vgname | détails du VG |
# lsvg –o | lsvg –i -l | liste des vg, lv & fs associés |
lslv [-L][-l|-m][-nPhysicalVolume] LogicalVolume | liste des LV |
# lslv –l lvname | liste les PV du LV |
# lslv –m lvname | détails des PV du LV |
lsfs [-q][-c|-l][-a|-v VfsType|-u MountGroup|FS…]] | liste des FS |
# lsfs –a | liste des FS |
# lsfs –q /fs_name | détails du FS |
lspv [-L][-l|-p|-M][-n DescriptorPhysicalVolume] [-v VolumeGroupID] Physical Volume | liste des PV |
# lspv –p hdisk0 | répartition des PPs |
extendvg [-f] VolumeGroup PhysicalVolume… | extension d’un VG |
# extendvg vgname hdisk2 | ajout du hdisk2 au VG |
extendlv [-a Position][-e Range][-u Upperbound][-s Strict] LogicalVolume Partitions [PhysicalVolume…] | extension d’un LV |
# extendlv lvname 8 hdisk2 | ajout du hdisk2 au LV |
mklvcopy [-a Position][-e Range][-k][-m MapFile] [-s Strick][-u UpperBound] LogicalVolume Copies [PhysicalVolume…] | création d’une copie de LV |
# mklvcopy –s n lvname 2 hdisk1 | |
rmlvcopy LogicalVolume Copies [PhysicalVolume…] | suppression d’une copie de LV |
# rmlvcopy lvname | |
cplv [-v VolumeGroupe][-y NewLogicalVolume|-Y Prefix] SourceLogicalVolume [-L VolumeGroupe][-n][-F][-R] PhysicalVolume | copie du contenu d’un LV |
# cplv –v vgname –y lvcible lvsource | |
importvg [-V MajorNumber][-y VolumeGroupe][-f][-c] [-x]| [-L VolumeGroupe][-n][-F][-R] PhysicalVolume | importation d’un groupe de volume dans la base ODM |
# importvg –y vgname hdisk2 | |
exportvg VolumeGroup | exportation d’un groupe de volume, le vg doit être inactif |
# exportvg vgname | |
ATTENTION: le VG est supprimé de la base ODM | |
mirrorvg [-S|-s][-Q][-c Copies][-m] VolumeGroup[PhysicalVolume…] | mise en miroir d’un VG |
# mirrorvg –c2 vgname hdisk2 | |
ATTENTION: mirrorvg = désactivation quorum + ajout d’une copie + synchronisation du vg | |
unmirrorvg [-c Copies] VolumeGroup [PhysicalVolume…] | suppression d’une copie d’un mirroir |
# unmirrorvg vgname hdisk2 | suppression de la copie sur hdisk2 |
ATTENTION: unmirrorvg = suppression d’une copie + activation quorum | |
syncvg [-f][-i][-H][-P NumParallelLps]{-l|-p|-v} Name… | synchronisation d’un VG / LV / PV |
# syncvg –v vgname | |
# syncvg –l lvname | |
# syncvg –p pvname | |
reducevg [-d][-f] VolumeGroup PhysicalVolume… | suppression d’un disque du VG |
# reducevg vgname hdisk# | |
rmlv [-B][-f][-p Physical Volume] LogicalVolume | suppression d’un LV |
# rmlv lvname | |
rmfs [-r] FileSystem | suppression d’un FS |
# rmfs –r fsname | suppression du FS + point de montage |
ATTENTION: si le FS est en JFS → suppression du LV associé | |
chvg [-a AutoOn{n|y}][-c|-l] [-Q{n|y}][-u][-x{n|y}] [-t[factor]][-B] VolumeGroup | modification des caractéristiques d’un VG |
# chvg –Qn vgname | désactivation du quorum |
chlv [-a Position][-b BadBlocks][-d Schedule][-e Range] [-L label][-p Permission][-r Relocate][-s Strict][-t Type] [-u Upperbound][-v Verify][-w MirrorWriteConsistency] [-x Maximum][-U Userid][-G Groupid][-P Modes] LV | modification des caractéristiques d’un LV |
# chlv –n lvname1 lvname2 | changement de nom |
# chlv –x 600 lv_name | augmentation max LP |
chfs [-n NodeName][-m NewMountPoint][-u MountGroup] [-A{yes|no}][-p{ro|rw}][-t{yes|no}][-a Attribute=Value] [-d Attribute]FileSystem | modification des caractéristiques d’un FS |
# chfs –a size=+32768 /mnt4 | |
# chfs –m /mnt1 /mnt2 | (nouveau ancien) |
# chfs –u groupname /fsname | (mount –t groupname) |
chpv [-a Allocation][-v Availability][-c] PhysicalVolume | modification d’un PV |
# chpv –c hdisk0 | suppression enregistrement de boot |
migratepv [-i] [-l LogicalVolume] SourcePhysicalVolume DestinationPhysicalVolume | migration d’un PV vers un autre |
# migratepv –l lvname hdisk1 hdisk2 | |
defragfs [-q|-r]{device|FS} | défragmentation de FS en ligne |
# defragfs –q fsname | |
redefinevg {-d Device|-i Vgid} VG | examine chaque disque et met à jour la base ODM |
# redefinevg rootvg | |
synclvodm [-v] VG [LV] | reconstruit la LVCB, la VGDA sur les PVs |
# synclvodm –v rootvg | |
fsck [-n][-p][-y][-dBlockNumber][-f][-I InodeNumber][-o Options][-tFile][-V VfsName][FS1 FS2…] | contrôle de l’intégrité d’un FS |
# fsck –yp /fsname | |
varyonvg [-b][-c][-f][-n][-p][-s][-u] VG | activation d’un VG |
# varyonvg vgname | |
varyoffvg [-s] VG | desactivation d’un VG |
# varyoffvg vgname | |
# varyoffvg –s vgname | mode management |
Configuration des Unités |
|
Commandes | Description |
lsdev –C [-c Class][-s Subclass][-t Type][-f File] [-F Format|-r ColumnName][-h][-H][-l Name][-S State] | infos sur le nom de la ressource, l’état, l’adresse |
# lsdev –Cc disk | |
lscfg [-rv]|[[-r]|[-v][-l Name]] | infos sur la configuration |
# lscfg –vl | more | |
lsattr {-D[-O]|-E[-O]|-F Format} –l Name [-a Attribute]… [-f File][-h][-H] | infos détaillées sur les attributes d’une unité |
# lsattr –El sys0 –a realmem –F value | |
mkdev {-c Class –s Subclass –t Type}[-l Name] [-a Attribute=Value]…[-d|-S|-R][-f File][-h] [-p ParentName][-q][-w ConnectionLocation] | configuration d’une unité |
# mkdev –c disk –s scci –t scsd –l hdisk# -p scsi –w 1,0 | |
cfgmgr [-f|-s|-p Phase][-I Device][-l Name][-v] | configuration des unités auto-configurables |
# cfgmgr –l scsi1 | |
chdev –l Name [-a Attribute=Value…][-f File][-h] [-p ParentName][P|-T][-q][-w ConnectionLocation] | modification de la configuration d’une unité |
# chdev –l sys0 –a autostart=true | |
# chdev –l rmt0 block_size=512 | |
# chdev –l ent0 –a media_speed=’100_Full_Duplex’ | |
rmdev –l Name [-d|-S][-f File][-h][-q][-R] | suppression d’une unité |
# rmdev –dl hdisk# | |
Permettre le Dynamic Processor Deallocation | |
# lsattr –El proc0 | vérifie l’état du processeur |
# lsattr –El sys0 | vérifie le paramètre cpuguard |
# chdev –l sys0 –a cpuguard=enable | |
Fichiers Remarquables |
|
Location | Description |
/etc/security/passwd | fichier des mots de passe cryptés |
/etc/security/user | caractéristiques utilisateur |
/etc/security/group | caractéristiques groupe |
/etc/security/limits | limites d’utilisation des ressouces par utilisateur |
/etc/security/environ | variables d’environnement des utilisateurs |
/etc/security/login.cfg | paramètres de connexion (limitation) |
/sbin/rc.boot | scripts de démarrage |
/etc/rc.tcpip | |
/etc/resolv.conf | @IP des serveurs DNS |
/etc/inetd.conf | fichier de configuration de inetd |
/etc/netsvc.conf | ordre de résolution de nom (var NSORDER) |
/etc/filesystems | fichiers des systèmes de fichier (imfs vgname) |
Mécanismes de contrôle des ressources |
|
gestion des ressources du système | |
Gestion de la CPU | |
On peut contrôler l’action de la mémoire en agissant sur 4 paramètres. | |
– les identificateurs « nice » | |
– les priorités des processus | |
– les files d’attentes de traitement | |
– les paramètres d’ordonnancement (schedtune) | |
Gestion de la mémoire | |
La mémoire réelle est une ressource finie. Lorsque les processus réclament plus de mémoire que ce qu’il y a de disponible, la pagination se déclenche pour déplacer des parties de processus sur disque et libérer ainsi des pages de mémoires pour exécuter de nouveaux processus. Si le système continue à manquer dé mémoire, il va se mettre à swaper, donc à déplacer des processus entier vers le disque pour libérer plus de mémoire. | |
On peut contrôler l’action de la mémoire en agissant sur 3 paramètres. | |
– l’espace de pagination | |
– limiter les ressources des processus | |
– jouer avec les paramètres de gestion mémoire (vmtune) | |
Gestion des I/Os | |
Le transfert des données vers et depuis la machine repose sur la banse passante de chaque périphèrique (disque, adaptateur, réseau, etc.). Chaque périphérique possède ses propres règles d’optimisation ainsi que ses propres problèmes. | |
On peut contrôler l’action des I/Os disques en agissant sur 3 paramètres. | |
– organisation des FS sur les disques et les contrôleurs | |
– placement des fichiers sur les disques | |
– paramètres des I/Os | |
Commande TCP/IP d’accès aux systèmes distants |
|
Location | Description |
rcp | permet de copier des fichiers entre sites UNIX |
rlogin | permet aux utilisateurs de se connecter sur des système unix distants à partir de leur propre terminal |
rsh | permet l’exécution d’une seule commande sur site distant |
ftp | permet de copier des fichiers entre système local et tout système accessible. C’est une version générale de rcp |
telnet | permet à un utilisateur de se connecter à un site distant sur lequel il possède un compte, que cela soit un système UNIX ou non (c’est en général dans ce dernier cas que telnet est utilisé). C’est une version plus générale de rlogin |
finger | permet d’obtenir de l’information sur les utilisateurs d’un site distant (ainsi que sur le système local) |
tcpdump | permet d’examiner les entêtes des paquets transmis par TCP/IP. Le résultat affiche le nom du protocole et la taille du paquet, suivi des sites et des ports source et destination, d’option TCP, du numéro de séquence de l’accusé de réception et du contenu du champs TCP, th_win |
iptrace | enregistre les données des paquets dans un fichier binaire |
ipreport | affiche les informations tirées du fichier généré par iptrace |
Définitions |
|
gestion des ressources du système | |
mémoire virtuelle & VMM : sous AIX, la mémoire est gérée par le Virtual Memory Manager (VMM). La mémoire virtuelle est composée par la mémoire réelle plus des portions de disques physiques et c’est grâce à ce VMM que la mémoire réelle donc dispose le système apparaît plus grande qu’elle ne l’est en vérité. | |
appel système : un appel système provoque le passage du processus du mode d’exécution utilisateur au mode d’exécution système, le processus utilise alors du code système pour son propre compte (ex : fork, gethostname, getpid, etc.). | |
freelist : VMM maintient un ensemble de pages mémoires libres réservé pour les nouvelles pages demandées par les processus. | |
minfree : taille minimale de la liste des pages disponibles. Lorsque la taille de cette liste tombe en dessous de minfree, le VMM doit subtiliser des pages aux processus en cours d’exécution pour renflouer ce cheptel. | |
maxfree : la subtilisation des pages cesse lorsque la liste des pages disponibles atteint ou excéde ce seuil. | |
minperm : minimum number of permanent buffer pages for file I/O. | |
maxperm : maximum number of permanent buffer pages for file I/O. | |
page fault : un défaut de page se produit lorsqu’un processus demande une page mémoire qui ne réside pas en mémoire et qui doit être rechargée à partir du disque. Cf. trashing | |
paging (pagination) : mécanisme de répartition de la mémoire. Le « paging » transfert des morceaux de la mémoire du processus – l’unité de transfert est la page de 4ko – sur le disque pour libérer suffisamment de mémoire pour l’exécution d’un autre processus. | |
swaping (transfert) : mécanisme de répartition de la mémoire. Le « swapping » est le transfert d’un processus entier sur le disque entraînant la libération de la mémoire qu’il utilise. | |
trashing : lorsqu’un processus demande la lecture d’une nouvelle page et qu’il n’en existe pas de disponible, ni de réutilisable, une des pages de la mémoire, utilisée par un autre processus, est alors déplacée sur le disque (page out). Lorsque cette page est à nouveau demandée, elle doit être relue ce qui forcera certainement le transfert sur disque d’une autre page. Lorsque le système passe son temps à gérer la mémoire virtuelle, on appelle cela une situation de « trashing ». | |
Mesure de la performance |
|
la commande vmstat | |
kthr memory page faults cpu kthr : Kernel THRead |
|
memory : représente l’utilisation de la mémoire |
|
page : représente l’activité de pagination sur la machine |
|
faults : in : nombre d’intérruption par secondes hors-horloge sy : appels système par seconde. Un appel système provoque l’utilisation par le processus du code système pour son propre compte. (exemple lecture/écriture sur un fichier). cs : changement de contexte par seconde |
|
cpu : us : % temps CPU user (process de priorités comprises entre 127 et 50). Lorsqu’un process s’exécute en mode utilisateur, il utilise son propre code et ne fait pas appel aux ressources du noyau. sy : % temps CPU noyau (process compris entre 49 et 0) qui résulte à la fois du surcoût induit par l’éxécution des process utlisateurs qui ont besoin de ressources noyau (exemple lecture/écriture sur un fichier) et du temps passé à offrir des services système. id : % de temps CPU non utilisé vmstat5.id > 5%, vmstat5.us > 2 x vmstat5.sy, vmstat5.wa < 25% |
|
la commande sar | |
# sar –u : activité des processeurs %usr : % de temps passé en mode utilisateur %sys : % de temps passé en mode système %wio : % de temps durant lequel le processeur est en attente d’une réponse d’une I/O %idle : % de temps durant lequel le processeur n’est pas utilisé sar-u5.idle > 5%, sar-u5.wio doit être faible (entre 5% et 10%) sar-u5.usr > 2 x sar-u5.sys |
|
# sar –d : activité des disques device : nom du périphérique %busy : pourcentage de temps durant lequel le disque sert la requête avque : nombre moyen de requête dans la file d’attente r+w/s : lecture/écriture effectuée par seconde blks/s : blocs de 512 octets transférés par seconde. avwait : temps moyen d’attente dans la file d’attente avserv : temps moyen de service pour une requête sar-d5.busy < 20%, sar-d5.avwait < sar-d5.avserv, sar-d5.avserv < 50ms |
|
# sar –q : file d’attente en exécution runq-sz : file d’attente des processus en attente d’exécution %runocc : % de temps durant lequel la file d’attente contient des processus swpq-sz : file d’attente des processus swappés en attente d’exécution %swpocc : % de temps durant lequel la file d’attente de swap est occupée par des processus sar-q5.runq.sz < 5 |
|
# sar –b : activité des buffers et cache bread/s : nombre de lecture/s du disque vers le cache lread/s : nombre de lecture /s dans le cache %rcache : taux de réussite d’accès en lecture dan le cache bwrit/s : nombre d’écriture/s du cache vers le disque lwrit/s : nombre d’écriture/s dans le cache %wcache : taux de réussite d’accès en écriture dans le cache pread/s : nombre de lecture/s à l’aide de l’appel système physio() pwrit/s : nombre d’écriture/s à l’aide de l’appel système physio() sar-b5.rcache > 95% et sar-b5.wcache > 65% |
|
# sar –v : activité des tables du noyau proc-sz : processus actuellement exécutés / processus max (nproc) inod-sz : inodes actuellement en mémoire / inodes max file-sz : taille de la table des fichiers / valeur maximale thrd-sz : |