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.
