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 outils 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’install.

# 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 traiter (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 importante 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’équilibré 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 elevé 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 traiter (graphique croiser dynamique) par Excel ou un autre tableur.

Supervision