Un pense-bête

Diagnostiquer les erreurs

Cet article va lister les commandes (passées sous la console) qui vous permettent d'identifier des anomalies survenus.

Voici tout d'abord quelles commandes à connaître pour connaître sa machine et son état :

1) "uname -a" donne chez moi le résultat suivant :

Linux jfdigonnet-DT55 3.13.0-78-generic #122-Ubuntu SMP Mon Feb 1 23:11:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Ma machine tourne sou sLinux; elle est basée sur une architecture 64 bit (x86_64). Elle tourne sous un kernel modifié par Ubuntu dont la version est 3.13.0-78. Le nom de ma machine est donc "jfdigonnet-DT55".


2) "hddtemp /dev/sda" me donne la chaleur de mon premier disque dur :

$ /dev/sda: ST3320418AS: 36°C

3) sensors

acpitz-virtual-0
Adapter: Virtual device
temp1:        +29.0°C  (crit = +127.0°C)
temp2:        +41.0°C  (crit = +127.0°C)

k10temp-pci-00c3
Adapter: PCI adapter
temp1:        +29.5°C  (high = +70.0°C)

4) "sudo fdisk -l" va vous lister tous disques amovibles ou non :

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 têtes, 63 secteurs/piste, 38913 cylindres, total 625142448 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x0004f572

Périphérique Amorçage  Début         Fin      Blocs    Id. Système
/dev/sda1   *        2048   617279487   308638720   83  Linux
/dev/sda2       617281534   625141759     3930113    5  Étendue
/dev/sda5       617281536   625141759     3930112   82  partition d'échange Linux / Solaris

Disk /dev/sdb: 32.0 GB, 32027705344 bytes
255 têtes, 63 secteurs/piste, 3893 cylindres, total 62554112 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0xc3072e18

Périphérique Amorçage  Début         Fin      Blocs    Id. Système
/dev/sdb1   *        2048    62554111    31276032    c  W95 FAT32 (LBA)

On a donc un disque dur interne et une clé USB.

5) "free -m" affiche l'état de la mémoire :

             total       used       free     shared    buffers     cached
Mem:         10000       5112       4888         58        384       2020
-/+ mémoire tampon/cache :       2706       7294
Mémoire d'échange :       3837          0       3837

6) grep MemTotal /proc/meminfo

7) cat /proc/meminfo

MemTotal:       10240976 kB
MemFree:         2492368 kB
Buffers:          388476 kB
Cached:          4089588 kB
SwapCached:            0 kB

...

DirectMap4k:      101952 kB
DirectMap2M:     1994752 kB
DirectMap1G:     8388608 kB

Vous donne des informations sur la quantité et l'utilisation de la mémoire.

8) La commande "cat /proc/cpuinfo | grep "MHz"" vous donnera la vitesse de votre bus processeur. Ce n'est pas la vitesse de votre processeur.

cpu MHz        : 800.000
cpu MHz        : 800.000

9) Pour la cadence ce votre processeur, utilisez plutôt cette commande : "sudo dmidecode -t processor | grep Speed" qui donne :

Max Speed: 3100 MHz
Current Speed: 3100 MHz

10) Résultat que l'on retrouve aussi dans la commande : cat /var/log/kern.log | grep "MHz processor". Qui donne :

Feb 25 08:27:23 jfdigonnet-DT55 kernel: [    0.004000] tsc: Detected 3092.130 MHz processor
Feb 26 08:03:13 jfdigonnet-DT55 kernel: [    0.004000] tsc: Detected 3092.232 MHz processor
Feb 29 08:33:57 jfdigonnet-DT55 kernel: [    0.004000] tsc: Detected 3092.416 MHz processor

11) Ou via cette commande : "cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq" qui donne :

3100000
3100000

12) Pour la gestion de l'énergie vous avec la commande  "acpi -V" qui donne :

No support for device type: power_supply
No support for device type: power_supply
Thermal 0: ok, 39.0 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 127.0 degrees C
Thermal 1: ok, 25.0 degrees C
Thermal 1: trip point 0 switches to mode critical at temperature 127.0 degrees C
Cooling 0: Processor 0 of 3
Cooling 1: Processor 0 of 10

13) Pour connaitre le taux d'utilisation de vos disuques : "df -h"

Sys. de fichiers              Taille Utilisé Dispo Uti% Monté sur
udev                            4,9G    4,0K  4,9G   1% /dev
tmpfs                          1001M    1,2M  999M   1% /run
/dev/sda1                       290G    104G  172G  38% /
none                            4,0K       0  4,0K   0% /sys/fs/cgroup
none                            5,0M       0  5,0M   0% /run/lock
none                            4,9G    440K  4,9G   1% /run/shm
none                            100M     28K  100M   1% /run/user
/dev/sdc1                       459G    205G  231G  47% /media/jfdigonnet/Verbatim

14) Il existe un test de vitesse de votre connexion internet chez Speedtest. La commande est ./speedtest-cli"

Consulter à ce propose l'article sur Speedtest.


15) La commande "mount" seule vous listera l'ensemble des disques réels ou non montés :

/dev/sda1 on / type ext4 (rw,noatime,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)

16) Pour lister les périphériques PCI installés utilisez la commande : "lspci -v".

00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] RS880 Host Bridge
    Subsystem: Acer Incorporated [ALI] Device 0444
    Flags: bus master, 66MHz, medium devsel, latency 0
    Capabilities: <access denied>
...

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
    Subsystem: Acer Incorporated [ALI] Device 8000
    Flags: bus master, fast devsel, latency 0, IRQ 43
    I/O ports at e800 [size=256]
    Memory at fe9ff000 (64-bit, non-prefetchable) [size=4K]
    Memory at fdffc000 (64-bit, prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: r8169

17) Pour tout savoir sur votre matériel : "sudo lshw" Attention c'est énorme !

  *-core
       description: Carte mère
       produit: DT55
       fabriquant: Gateway
       identifiant matériel: 0
       numéro de série: U02F110902145
       emplacement: To Be Filled By O.E.M.
......

18) "ps --cols 1000 -A --forest -o nlwp,user,group,cmd" permet de lister tous les procéssus ("-A") en s'assurant d'afficher toutes les informations sur 1000 colonnes. On affiche certaines informations avec le "-o" : no, utilisateur, goup et commande ainsi que les liens entre les processus ("--forest"). Exemple de restitution :

   3 jfdigon+ vboxuse+ /usr/lib/x86_64-linux-gnu/zeitgeist-fts
   1 jfdigon+ vboxuse+  \_ /bin/cat
   4 jfdigon+ vboxuse+ /usr/lib/gvfs/gvfsd-recent --spawner :1.1 /org/gtk/gvfs/exec_spaw/1
   3 jfdigon+ vboxuse+ /usr/lib/at-spi2-core/at-spi-bus-launcher
   1 jfdigon+ vboxuse+ kdeinit4: kdeinit4 Running...
   1 jfdigon+ vboxuse+  \_ kdeinit4: klauncher [kdeinit] --fd=8
   3 jfdigon+ vboxuse+ kdeinit4: kded4 [kdeinit] 
   5 jfdigon+ vboxuse+ /usr/bin/python /usr/share/system-config-printer/scp-dbus-service.py
   1 root     root     /usr/sbin/cupsd -f
   1 lp       lp        \_ /usr/lib/cups/notifier/dbus dbus://

19) "ps eww -p 4092" permet de connaître le context d'une application qui tourne. On récupère le pid avec la commande

$ pidof firefox

puis

$ ps eww -p 4092

qui donne :

  PID TTY      STAT   TIME COMMAND
 4092 ?        Sl    19:55 /usr/lib/firefox/firefox GJS_DEBUG_TOPICS=JS ERROR;JS LOG GNOME_KEYRING_PID=3474 USER=jfdigonnet LANGUAGE=fr_FR XDG_SEAT=seat0 TEXTDOMAIN=im-config SSH_AGENT_PID=3563 SHLVL=0 HOME=/home/jfdigonnet QT4_IM_MODULE=xim DESKTOP_SESSION=cinnamon QT_STYLE_OVERRIDE=gtk GIO_LAUNCHED_DESKTOP_FILE=/usr/share/applications/firefox.desktop GTK_MODULES= XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Lz3jZFvwjE,guid=2ef7b51bb74861f3cf77379d56cff950 CINNAMON_VERSION=2.8.6 GIO_LAUNCHED_DESKTOP_FILE_PID=4092 GNOME_KEYRING_CONTROL=/run/user/1000/keyring-M7j5XO QT_QPA_PLATFORMTHEME=appmenu-qt5 MANDATORY_PATH=/usr/share/gconf/cinnamon.mandatory.path LOGNAME=jfdigonnet GTK_IM_MODULE=ibus DEFAULTS_PATH=/usr/share/gconf/cinnamon.default.path XDG_SESSION_ID=c2 CLUTTER_BACKEND=x11 GNOME_DESKTOP_SESSION_ID=this-is-deprecated PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games GDM_LANG=fr_FR SESSION_MANAGER=local/jfdigonnet-DT55:@/tmp/.ICE-unix/3477,unix/jfdigonnet-DT55:/tmp/.ICE-unix/3477 XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0 XDG_RUNTIME_DIR=/run/user/1000 DISPLAY=:0 LANG=fr_FR.UTF-8 XDG_CURRENT_DESKTOP=X-Cinnamon DESKTOP_STARTUP_ID=cinnamon-3792-jfdigonnet-DT55-firefox-0_TIME310585 XMODIFIERS=@im=ibus XAUTHORITY=/home/jfdigonnet/.Xauthority XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/jfdigonnet SSH_AUTH_SOCK=/run/user/1000/keyring-M7j5XO/ssh SHELL=/bin/bash GDMSESSION=cinnamon MOZ_APP_LAUNCHER=/usr/bin/firefox TEXTDOMAINDIR=/usr/share/locale/ GPG_AGENT_INFO=/run/user/1000/keyring-M7j5XO/gpg:0:1 GJS_DEBUG_OUTPUT=stderr XDG_VTNR=7 QT_IM_MODULE=ibus PWD=/home/jfdigonnet CLUTTER_IM_MODULE=xim XDG_CONFIG_DIRS=/etc/xdg/xdg-cinnamon:/etc/xdg XDG_DATA_DIRS=/usr/share/cinnamon:/usr/share/gnome:/usr/local/share/:/usr/share/ LIBGL_DRIVERS_PATH=/usr/lib/fglrx/dri:/usr/lib/x86_64-linux-gnu/dri:/usr/lib/dri:/usr/lib32/fglrx/dri:/usr/lib/i386-linux-gnu/dri

20) ps permet de connaître les processus en mémoire de votre machine. Vous le verrez souvent avec les options "-ef" qui donne :

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 08:15 ?        00:00:02 /sbin/init
root         2     0  0 08:15 ?        00:00:00 [kthreadd]
root         3     2  0 08:15 ?        00:00:00 [ksoftirqd/0]
root         5     2  0 08:15 ?        00:00:00 [kworker/0:0H]

Autre variante plus élaborée :

$ ps --cols 1000 -A --forest -o nlwp,user,group,pid,cmd

Cette variante permet de lister tous les processus (-A) et leurs dépendances (--forest) et de bien afficher la commande qui a été lancée. Exemple de sortie :

4 jfdigon+ vboxuse+  2568          \_ gnome-session --session=ubuntu
   6 jfdigon+ vboxuse+  2680          |   \_ compiz
   3 jfdigon+ vboxuse+  2762          |   \_ /usr/lib/vino/vino-server --sm-disable
   4 jfdigon+ vboxuse+  2769          |   \_ /usr/lib/unity-settings-daemon/unity-fallback-mount-helper
   4 jfdigon+ vboxuse+  2775          |   \_ nautilus -n
   3 jfdigon+ vboxuse+  2779          |   \_ nm-applet
   3 jfdigon+ vboxuse+  2780          |   \_ /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
   4 jfdigon+ vboxuse+  2787          |   \_ python2 -m guake.main
   1 jfdigon+ utmp      2897          |   |   \_ gnome-pty-helper

Il est ensuite possible d'interroger un processus en particuliers pour en connaitre les variables d'envirronement :

$ ps eww -p 5872

qui donne :

  PID TTY      STAT   TIME COMMAND
 5872 ?        Sl     0:15 okular /home/jfdigonnet/SASS/233Fiut.pdf --icon okular -caption Okular GNOME_KEYRING_PID=2354 USER=jfdigonnet LANGUAGE=fr_FR XDG...AUNCHED_DESKTOP_FILE=/usr/share/applications/kde4/okularApplication_pdf.desktop GIO_LAUNCHED_DESKTOP_FILE_PID=5872 INSIDE_NAUTILUS_PYTHON=

21) lsof vous liste tous les fichiers utilisés (et chez Linux tout est fichier) :

QProcessM 8537 8548 jfdigonnet  mem       REG                8,1     12935  3282697 /usr/share/locale/fr/LC_MESSAGES/solid_qt.mo
QProcessM 8537 8548 jfdigonnet  mem       REG                8,1      2914  3283175 /usr/share/locale/fr/LC_MESSAGES/libphonon.mo
QProcessM 8537 8548 jfdigonnet  mem       REG                8,1    107107  2101938 /usr/share/locale-langpack/fr/LC_MESSAGES/glib20.mo

On peut se limiter à un seul processus :

$ lsof -nP -p 3488 (firefox)

qui donne entre autre :

COMMAND  PID       USER   FD      TYPE             DEVICE  SIZE/OFF     NODE NAME
firefox 3488 jfdigonnet  cwd       DIR                8,1      4096  2362577 /home/jfdigonnet
firefox 3488 jfdigonnet  rtd       DIR                8,1      4096        2 /
firefox 3488 jfdigonnet  txt       REG                8,1    121040  1844277 /usr/lib/firefox/firefox

firefox 3488 jfdigonnet   47u      REG                8,1    688664  8126654 /home/jfdigonnet/.mozilla/firefox/fbyvrvqd.default-1441810766410/cookies.sqlite-wal
firefox 3488 jfdigonnet   48ur     REG                8,1     32768  8126977 /home/jfdigonnet/.mozilla/firefox/fbyvrvqd.default-1441810766410/cookies.sqlite-shm
etc...

On voit ici dans la colonne NAME la liste des fichiers utilisés par Firefox.

22) La commande starce va permettre de suivre les appels systèmes utilisés par l'application

$ strace gimp

Il est aussi possible de lancer un strace sur un programme déja en cours d'exécution :

$ sudo strace -s 1000 -ttT -f -o /tmp/trace.out -p 3488

On peut suivre la trace par un :

$ sudo tail -f /tmp/trace.out

23) boot.log

Si votre machine semble poser des soucis au démarrage, regardez dans le "boot.log"  via la commande :

$ cat /var/log/boot.log

Fait le 26/02/2016