Système

Afficher la version du noyau utilisé

Pour connaitre la version du noyau en cours d'utilisation, saisir dans une console la commande suivante :

$ sudo uname -a
Linux vm-apache 2.6.32-14-pve #1 SMP Tue Aug 21 08:24:37 CEST 2012 i686 GNU/Linux
 

 

Etiquettes: 

Afficher la version du système d'exploitation Linux

$ cat /etc/os-release

Etiquettes: 

Corriger un problème de locale

Sur un système GNU/Linux, une locale qui n'est pas correctement configurée entraîne ce genre de message d'erreur :

-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_GB.UTF-8)
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_GB.UTF-8)

Pour corriger cette erreur, il suffit d'exécuter les 2 commandes suivantes :

$ sudo locale-gen en_GB.UTF-8
$ sudo update-locale LANG=en_GB.UTF-8

Une simple déconnexion / reconnexion suffit pour ne plus avoir le problème.

Forcer la vérification des disques

Sous Linux, la vérification des disques s'effectue avec la commande fsck.

L'utilisation de cette commande nécessite que la partition à controler soit démontée.

Lister les disques et partitions du système

$ fdisk -l
 
Disk /dev/sdb: 1500.3 GB, 1500299395072 bytes
255 heads, 63 sectors/track, 182401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00026d5d
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      182401  1465136001   83  Linux

Identifier le type de la partition

$ blkid
/dev/sdb1: UUID="a6ea6463-e289-4bbe-afba-572f876497da" TYPE="ext4"

Identifier le point de montage de la partition

$ mount
/dev/sdb1 on /volume1 type ext4 (rw)

Démonter la partition et lancer la vérification

$ umount /volume1
$ fsck -t ext4 /dev/sdb1


Si le démontage de la partition n'est pas possible, il existe 2 solutions permettant la vérification des disques.

1 - Redémarrer le système en forçant la vérification :

$ shutdown -r -F now

2 - Créer le fichier forcefsck et redémarrer le système :

$ touch /forcefsck
$ reboot

Après le redémarrage et la vérification des disques, le fichier /forcefsck est automatiquement supprimé.

Les pages de manuels en couleur

Par défaut, les pages de manuels utilisent la commande less pour les afficher.

La commande less est une évolution de la commande more.
Elle permet de mettre en gras les rubriques principales des pages de manuels.

La commande most, permet d'ajouter une coloration syntaxique et bien d'autres options supplémentaires.

Pour installer la commande most :

$ sudo apt-get install most

Pour utiliser most pour parcourir les pages de manuels :

$ PAGER=most man cp

Cette commande permet d'utiliser most comme PAGER pour consulter le manuel de la commande cp

Pour utiliser most comme PAGER par défaut :

En BASH, ajouter cette ligne dans le fichier ~/.bashrc

export PAGER=most

Autres options disponibles avec la commande most (partant du principe que most est le PAGER par défaut):

Non seulement most permet de consulter les pages de manuels mais il peut également afficher le contenu de n'importe quel fichier.

$ man cp                       # consultation du manuel avec la commande most si PAGER par défaut
$ most /mon_fichier
 
H : affichage de l'aide most
Espace ou D : défilement page par page vers le bas
Delete ou U : défilement page par page vers le haut
Entrée ou Flèche bas : défilement ligne par ligne vers le bas
Flèche haut : défilement ligne par ligne vers le haut
T : se positionne en haut du document
B : se positionne en bas du document
J ou G : se positionne à la ligne voulue
> : déplacement vers la droite
< : déplacement vers la gauche
S ou f ou / : permet d'effectuer une recherche vers le bas
? : permet d'effectuer une recherche vers le haut
N : recherche les occurences suivantes

En mode affichage de fichier :

E : bascule en mode édition avec l'éditeur par défaut

En mode affichage de logs en continu :

au lieu de

$ tail -f /var/log/access.log

utiliser most puis l'option F

$ most /var/log/access.log
F : simule la commande tail -f

Etiquettes: 

Processus

Les n premiers processus les plus consommateur de cpu

La commande suivante permet d'afficher les 15 premiers processus les plus gourmands en processeur.

$ sudo ps auxk -pcpu | head -n 16
Etiquettes: 

PS

Pour savoir si un processus est actif :

$ sudo ps -ef | grep nom_du_programme

ou

$ pgrep nom_du_programme

La commande ci-dessus retourne le numéro du processus recherché.

Afficher les processus d'un user particulier (par exemple root):

$ pgrep -u root

top - afficher un processus Linux spécifique

Pour afficher les statistiques d'un programme spécifique à l'aide de la commande top:

L'exemple suivant affiche tous les processus nginx.

$ top -p$(pgrep -d, nginx)

L'argument -d de la commande pgrep permet d'afficher les numéros des processus séparés par une virgule.

L'argument -p de la commande top permet de filtrer uniquement les processus indiqués.

Etiquettes: 

Réseau

Netstat

Pour savoir si un port est utilisé par une application :

$ sudo netstat -lpn | grep :80 (numéro du port)

Etiquettes: 

logger : Journaliser des évènements dans /var/log/syslog

La commande logger permet d'enregistrer des informations dans le fichier /var/log/syslog.

Cette commande est idéale pour journaliser différents évènements pendant l'exécution d'un script.

Elle peut être utilisée tout simplement :

$ logger -t monTag monMessage
$ tail /var/log/syslog
Apr 23 15:23:37 ubuntu10.04 monTag: monMessage

L'option -t permet d'indiquer un tag. Très utile pour effectuer des recherches dans le fichier syslog.

$ logger -t monTag Je peux également écrire un texte avec des espaces
$ tail /var/log/syslog
Apr 23 15:26:12 ubuntu10.04 monTag: Je peux également écrire un texte avec des espaces

La commande logger permet également d'enregistrer dans syslog le contenu d'un fichier.

$ cat fic1
systèmes
coucou
recoucou
$ logger -t FIC1 -f fic1
$ tail /var/log/syslog
Apr 23 15:29:13 ubuntu10.04 FIC1: systèmes
Apr 23 15:29:13 ubuntu10.04 FIC1: coucou
Apr 23 15:29:13 ubuntu10.04 FIC1: recoucou

Utiliser la commande logger dans un script :

$ cat comparaison.sh
#!/bin/bash
logger -t $0 Execution du script
# Test sur le nombre d'arguments
if [[ $# -ne 2 ]]
then
        logger -t $0 Nombre d\'arguments incorrect
        echo "Mauvais nombre d'arguments"
        echo "Utilisation : $0 nbr1 nbr2"
        exit 1
fi
# On compare les nombres
logger -t $0 Comparaison de $1 et $2
if [[ $1 -gt $2 ]]
then
        logger -t $0 $1 est superieur a $2
        echo "Comparaison : $1 est superieur a $2"
else
        logger -t $0 $1 est inferieur a $2
        echo "Comparaison : $1 est inferieur a $2"
fi
logger -t $0 Fin du script
exit 0

Dans ce script, j'utilise le nom du script comme tag (logger -t $0).

Exécution du script :

$ ./comparaison.sh 10 20
Comparaison : 10 est inferieur a 20
$ tail /var/log/syslog
Apr 23 15:51:57 ubuntu10.04 ./comparaison.sh: Execution du script
Apr 23 15:51:57 ubuntu10.04 ./comparaison.sh: Comparaison de 10 et 20
Apr 23 15:51:57 ubuntu10.04 ./comparaison.sh: 10 est inferieur a 20
Apr 23 15:51:57 ubuntu10.04 ./comparaison.sh: Fin du script

Tous mes évènements ont été enregistrés dans sylog.

Il est également possible, dans le script, d'enregistrer les évènements dans un fichier texte avec la commande echo et seulement, à la fin du script, d'utiliser la commande logger pour enregistrer le contenu du fichier texte dans le fichier syslog.

$ cat comparaison.sh
#!/bin/bash
echo "Execution du script" > /root/logComparaison
# Test sur le nombre d'arguments
if [[ $# -ne 2 ]]
then
        echo "Nombre d'arguments incorrect" >> /root/logComparaison
        echo "Mauvais nombre d'arguments"
        echo "Utilisation : $0 nbr1 nbr2"
        exit 1
fi
# On compare les nombres
echo "Comparaison de $1 et $2" >> /root/logComparaison
if [[ $1 -gt $2 ]]
then
        echo "$1 est superieur a $2" >> /root/logComparaison
        echo "Comparaison : $1 est superieur a $2"
else
        echo "$1 est inferieur a $2" >> /root/logComparaison
        echo "Comparaison : $1 est inferieur a $2"
fi
echo "Fin du script" >> /root/logComparaison
logger -t $0 -f /root/logComparaison
exit 0

Tous les évènements sont enregistrés dans le fichier /root/logComparaison à l'aide de la commande echo.
Attention, le premier appel à la commande echo écrase le contenu du fichier /root/logComparaison s'il existe (utilisation d'un seul chevron ">" dans la redirection).
Pour terminer, tout le contenu du fichier est enregistré dans syslog à l'aide de la commande logger et de l'option -f suivi du nom du fichier (utilisation du nom du script en tag).

$ ./comparaison.sh 100 20
Comparaison : 100 est superieur a 20
$ cat logComparaison
Execution du script
Comparaison de 100 et 20
100 est superieur a 20
Fin du script
$ tail /var/log/syslog
Apr 23 16:21:10 ubuntu10.04 ./comparaison.sh: Execution du script
Apr 23 16:21:10 ubuntu10.04 ./comparaison.sh: Comparaison de 100 et 20
Apr 23 16:21:10 ubuntu10.04 ./comparaison.sh: 100 est superieur a 20
Apr 23 16:21:10 ubuntu10.04 ./comparaison.sh: Fin du script

Etiquettes: