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)

Combiner avec la commande "watch" vous pouvez suivre en temps réel la température de vos disques avec la commande :

$ watch -n 2 sensors

qui donne le même résultat que ci dessus mais actualisé toutes les deux secondes.

4) Vous pouvez aussi suivre votre carte graphique si c'est une NVIdia. Installez tout d'abord les utilitaires NVidia :

$ sudo apt install nvidia-utils-390

puis lancez la commande :

$ sudo nvidia-smi

qui donne :

5) "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.

6) "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

7) grep MemTotal /proc/meminfo

8) 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.

9) 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

10) 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

11) 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

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

3100000
3100000

13) 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

14) 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

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

Consulter à ce propose l'article sur Speedtest.


16) 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)

17) 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

18) 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.
......

19) "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://

20) "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

21) "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=

22) 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.

23) 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

24) 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