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.
