Les commandes Linux avancées

Recherche / Remplacement

Remplacer une chaine de caractère dans une arborescence

# En bash
find /chemin/du/dossier -type f -exec sed -i 's/ancienne_chaine/nouvelle_chaine/g' {} \;

Recherche rapide de fichier/répertoire à partir d’une portion de nom

# Install debian => apt install locate
# pour mettre à jour l'index => upgradedb
locate monfichier

Recherche de fichier d’une certaine taille

# fichier de 10 Giga => G = Giga k = kilo ou sans précision = Octect
find ./ -type f -size +10G -ls

Réseaux

Affichage des routes

# Debian 
ip -4 route
ip -6 route
#netstat --route
#route -n

# AIX / redhat
route print
netstat -m

Tracer les paquets réseaux

# Debian/AIX
traceroute host

Afficher les interfaces réseaux

# Debian
ip addr
# ipconfig

Afficher les ports occupés

# Debian
ss -tupln

Afficher les règles du pare-feu

iptables --list --line-numbers

Système d’exploitation

Afficher les infos de la machine

##### Mémoire #####
free
# cat /proc/meminfo | grep ʺSwapTotal:ʺ | awk '{print $2}'
# cat /proc/meminfo | grep ʺMemTotal:ʺ | awk '{print $2}'
# cat /proc/meminfo | grep ʺSwapFree:ʺ | awk '{print $2}'
# cat /proc/meminfo | grep ʺMemFree:ʺ | awk '{print $2}'

##### CPU/VCPU #####
# Nombre de CPU => cat /proc/cpuinfo | grep processor | wc -l
mpstat -P ALL

##### Heure de démarrage #####
uptime

##### Version de l'OS #####
# uniquement la version noyau => uname -or
uname -a

##### Point de montage des FS #####
#  cat /etc/fstab
mount 

Performance de la machine

Moniteurs de processus

htop
#top est bien pour la sortie texte brut pour du post-traitement

Vision statistique du système

Dstat est un outil chapeau pour monitorer les performances du système Linux. Toutefois, il n’est pas installé par défaut et donc nécessite les droits sudo pour lancer l’installation.

# Pour l'installer
# sudo apt-get install dstat
# lancement en interactif
dstat -tncms
# lancement avec sortie dans un fichier csv toute les 10 sec.
dstat -tncms --output /tmp/file.csv 10

Vision statistique du système (moins complet)

# sudo apt install sysstat
# Activer les traces
# sed -i 's/ENABLED=\"false\"/ENABLED=\"true\"/g' /etc/default/sysstat
# Désactiver les traces
# sed -i 's/ENABLED=\"true\"/ENABLED=\"false\"/g' /etc/default/sysstat
# sudo systemctl restart sysstat
sar -B

Si le nombre de pages mémoire inactives est faible (sar -R)(frmpg/s & Active/Inactive) dans meminfo, il faut rajouter de la mémoire.

I/O des FS

!/bin/bash

# Le détail des colonnes => https://www.globo.tech/learning-center/install-use-iostat/
# exemple de script

echo /dev/null > out.txt
Nombre=1
while [ $Nombre -le 5 ] # pour 5 mesures
do
    # Filtre pour surveiller les fs sur sda1.
    iostat -d -x | grep sda1 >> out.txt

    # Attendre 5 secondes
    sleep 5

    # decompte des mesures
    ((Nombre++))
done

Le fichier de sortie peut être traité (graphique croiser dynamique) par Excel ou un autre tableur.

Cas 1) Il y a un fort volume d’accès sur tous les périphériques et que les r/s & w/s sont élevés et/ou rrqm/s & wrqm/s sont élevés alors, il y a une incapacité du système à tenir la charge IO.

Cas 2) Les tailles de la file sont importantes sur tous les périphériques, si avgrq-sz et avgqu-sz sont élevés alors le système est dans l’incapacité de tenir la charge des IO.


Solution à envisager : Il faut augmenter le nombre et/ou la capacité des canaux accédants aux périphériques de stockage.

Cas 3) Il y a un fort volume d’accès sur N périphériques, si r/s w/s et/ou rrqm/s wrqm/s sont élevés ou si avgrq-sz et avgqu-sz sont élevés alors le Volume en IO est mal équilibré sur les N périphériques.

Solution à envisager : Il faut répartir les fichiers sur d’autres fs afin d’équilibrer la charge.

Cas 4) Il y a des temps d’attente importants et la taille de la file d’attente des IO est faible si await est élevé et/ou avgrq-sz et avgqu-sz sont faibles.


Solution à envisager : Il faut vérifier l’utilisation des IO Asynchrones. Il faut vérifier le matériel, cela peut constituer un indicateur de matériel défectueux.

Statistiques d’utilisation de la mémoire

!/bin/bash

# Le détail des colonnes => https://access.redhat.com/solutions/1160343
# exemple de script

echo /dev/null > out.txt
Nombre=1
while [ $Nombre -le 5 ] # pour 5 mesures
do
    # Suppression de l'en-tête 
    vmstat | tail -1 >> out.txt

    # Attendre 5 secondes
    sleep 5

    # decompte des mesures
    ((Nombre++))
done

Le fichier de sortie peut être traité (graphique croiser dynamique) par Excel ou un autre tableur.

Supervision