Commandes usuelles sous Linux: mes notes

Temps de lecture approximatif : 12 minutes

+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+
| GESTION DES ACCES AU SYSTEME, DES GROUPES ET DES UTILISATEURS |
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+

Passer « root »:
****************
1. Sous Ubuntu:

sudo -s

   ou

sudo su

2. Sous Debian:

su

 

Gestion groupes:
********************

aloes:~# groupadd kvmuser

1. Ajout de l’utilisateur dans le group:

# gpasswd -a hyperic hyperic
           ou aussi
# usermod -G hyperic hyperic

 

Gestion utilisateurs:
***********************

aloes:~# useradd -g kvmuser -m kvmuser

-g : GID (group IDentification)
-u : UID (User IDentification)
-m : Créer le repertoire à /home/[nom de l’utilisateur]

1. Ajout d’un utilisateur et création de son « home »:

#useradd -m -d /home/hyperic hyperic

 

2. Ajout/modification d’un mot de passe:

#passwd [nom de l'utilisateur]

3. Connaitre l’ID:

aloes:~# id kvmuser
id=1000(kvmuser) gid=114(kvmuser) groupes=114(kvmuser)
aloes:~#

4. Ajout d’un utilisateur dans un ou plusieur groupe:

usermod -G groupe1,groupe2 -a utilisateur

5. Obtenir la liste des groupes et utilisateurs:

#getent group
     ou
#getent group nom_du_group

 

+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+
| GESTIONS DES FICHIERS ET REPERTOIRES |
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+

Copier vers un serveur distant: Commande SCP
****************************************************

1. Exemple 1: copier, à partir de notre machine, un fichier vers un serveur distant.

root@monsrv:/opt# scp snmpd_custom.conf remote_serveur:/etc/snmp/snmpd.conf

– snmpd_custom.conf = fichier de départ
– remote_server = adresse du serveur de destination
– /etc/snmp/snmpd.conf = chemin du fichier de destination

2. Exemple 2: récuperer un fichier distant pour le mettre sur notre machine.

root@monsrv:/opt# scp remote_serveur:/etc/snmp/snmpd.conf ./snmpd_custom.conf

 

Supprimer des fichiers ou dossiers avec des espaces dans les noms
************************************************************************

emma@estaque:~/myspace/my_scrapbook$ ls
 scrapbook (Copie de MonNomFamille Moi en conflit 2011-12-09).rdf
 scrapbook (Copie de MonNomFamille Moi en conflit 2012-04-03).rdf
 scrapbook (Copie de MonNomFamille Moi en conflit 2012-01-03).rdf
 scrapbook (Copie de MonNomFamille Moi en conflit 2012-04-10).rdf
 backup
 folders (Copie de MonNomFamille Moi en conflit 2012-03-13).txt
 folders.txt
 cache.rdf
 folders (Copie de MonNomFamille Moi en conflit 2012-03-14).txt
 multibook.txt
 ...
 ...
emma@estaque:~/myspace/my_scrapbook$ rm -r folders\ \(Copie\ de\ MonNomFamille\ Moi\ en\ conflit\ 201*

emma@estaque [Mon-Entreprise]:~/myspace/my_scrapbook$ ls
 backup       collection.html  combine.html  folders.txt     note.html
 cache.rdf  combine.css        data      multibook.txt
 ...
 ...

 

Connaître le type de fichier
*******************************

emma@estaque [Mon-Entreprise]:~$ file Desktop/log_cron.txt
 Desktop/log_cron.txt: ASCII text

emma@estaque [Mon-Entreprise]:~$ file Desktop/facture_ovh.pdf
 Desktop/facture_ovh.pdf: PDF document, version 1.5

emma@estaque [Mon-Entreprise]:~$ file  Desktop/CaptureLDAP_1.png
Desktop/CaptureLDAP_1.png: PNG image data, 1440 x 900, 8-bit/color RGB, non-interlaced

 

Retrouver un fichier par son nom
*************************************

moi@monserveur:~$ locate openvpn
var/lib/update-rc.d/openvpn
...

 

Modifier le mode de création d’un répertoire
**************************************************

Il faut changer l’umask:

vim /etc/login.defs

Pour permettre l’écriture et l’exécution au groupe,

mettre « UMASK 002 »

Permettre au groupe d’ecrire dans un dossier
**************************************************

chmod -R g+s /mon_dossier

 

Taille de dossier:
*******************
-h = affichage « humain » en Ko,Go,Mo .
Exemple:

root@noyer:/# du -hs *
 26G     backup
 3.8M    bin
 6.9M    boot
 7.5G    data
 116K    dev
 ...
root@noyer:/# du -hs /etc/*
 16K     /etc/acpi
 4,0K    /etc/adduser.conf
 4,0K    /etc/adjtime
 4,0K    /etc/aliases
 12K     /etc/aliases.db
 8,0K    /etc/alternatives
 408K   /etc/apache2
 ...

 

Compression en tar.gz:
**************************

alcazar:/data/vz/private# tar -cvf rahan.tar.gz ./222 

 

Décompression d’un .tar.gz:
*******************************

srvhome:/media/DATAS/BACKUP_SRVHOME/ARCHIVES# tar -xvzf srvhome.20100117.master.tar.gz
 usr/local/sbin/
 usr/local/sbin/automysqlbackup-2-5.sh
srvhome:/media/DATAS/BACKUP_SRVHOME/ARCHIVES#

 

Compresser/décompresser un .zip
**************************************

1. Compression .zip

# zip -r nom_du_fichier.zip repertoire_ou_fichier

2. Decompression .zip

# unzip nom_du_dossier -d nom_destination

 

Afficher le contenu d’un fichier sans les lignes commentées:
*****************************************************************

grep -v '^[\t ]*; '<nom fichier> 
         
                  ou

egrep -a -v '^[[:space:]]*;' <nom fichier> | egrep -a '[[:print:]]'

 

Commande: « RSYNC »
************************

– Synchroniser deux répertoires avec rsync:

1. Exemple de syntaxe:
De nous vers le client:

rsync -avzH --progress --stats * root@frene.dg.mon
_client_1.ch:/data/deploy_monclient_1

Depuis le Client vers nous:

rsync -avzH --progress --stats root@frene.dg.mon
_client_1.ch:/data/deploy_monclient_1/* .

2. En cas de problème avec l’utilisation de l’option –filter

[note importante]
ATTENTION, SUIVANT LA VERSION DE RSYNC UTILISEE, CERTAINES OPTIONS ONT EVOLUE !
VERIFIER LA SYNTHAXE EN TAPANT « man rsync ».
[/note]

Attention, l’adresse du répertoire à exclure doit être RELATIVE au répertoire de sauvegarde !

il faut donc écrire:

–filter « – .VirtualBox/ »

et non

–filter « – /home/dom/.VirtualBox/ »

ce qui donne :

rsync -rltgoDv --del --ignore-errors --force --filter "- .VirtualBox/" /home/moi/ /media/my_backup/

…qui fonctionne !

3. Autres exemples:

rsync -avzH --delete-during --filter "- media/disk/" --filter "- proc/" --filter "- sys/" --filter "- tmp/" --filter "- dev/" / /media/disk

ou encore

time rsync -avzH --numeric-ids --delete --filter "- computers/infos/" --filter "- logs/" svg-info-pldeploy/ root@genepi:/data/shares/svg-info-pldeploy

 

4. Utilisation dans un bash

...
# Example for RSYNC_OPTIONS:
RSYNC_OPTIONS="-avH --exclude=satigny/media/archives --itemize-changes --stats --numeric-ids --delete-during"
#
rsync $RSYNC_OPTIONS /backup/rsnapshot/snapshots/hourly.0/ /media/BACKUP_5a4ab233-4e/MY-ENTREPRISE_BACKUP
 ...

 

5. Se connecter à une machine distante et synchroniser un répertoire sur un autre local:

rsync -avzH --numeric-ids --delete --exclude='*.exe' --exclude='*.au3' --progress  --stats root@192.168.3.168:/home/pldeploy/ pldeploy/

 

6. Synchroniser un répertoire local vers un hôte distant:

rsync -avz --exclude='*.spc' --exclude='.auth_var-WORK.ini' --exclude='.auth_var-DOM.ini' svg-info-pldeploy/ root@192.168.3.168:/data/home/pldeploy

– Backuper par exemple une vz d’un serveur nommé cirrus vers un autre serveur nommé fibratus.

 root@cirrus:~# vzlist
 VEID      NPROC STATUS  IP_ADDR         HOSTNAME
 245         34 running 192.168.16.245  flocus
 251        122 running 192.168.16.251  nimbo
 252         18 running 192.168.16.252  stratus
 root@cirrus:~#
root@fibratus:~# vzlist
 CTID      NPROC STATUS    IP_ADDR         HOSTNAME
 253        257 running   192.168.16.253  mail.monentreprise.org
 root@fibratus:~#
 root@fibratus:~# time rsync -avzH --numeric-ids --delete -e "ssh -l root@cirrus" root@cirrus:/data/vz/priv
ate/253/ /data/vz/private/253/

 

7. Exécuter rsync vers un port distant différent (exemple lors d’un forward du port ssh)

rsync -avzH --progress --stats --rsh='ssh -p2222' /data/pldeploy/pldeploy_aslo_04-07-2012/ root@localhost:/data/shares/svg-info-pldeploy/ 

 

Commande: « FIND »
**********************

1. Trouver un fichier en fonction de son nom

find . -name "databases*"

2. Trouver un éléments de type répertoire

find . -name "config" -type d

3. Lister le contenu de répertoires correspondant à un masque

find . -type d -name "config" -exec ls -l {} \;

4. Modifier les droits des fichiers de type répertoire

find . -type d -exec chmod g+x {} \;

Commande très utile pour donner les droits d’exécution seulement aux répertoires.

5. Recherche à l’aide d’opérateurs logiques

find /tmp ( ! -user webmaster )

Cette commande renverra tous les fichiers de /tmp n’appartenant pas à l’utilisateur webmaster

find / ( -type d -a -user webmaster )

Cette commande renverra tous les fichiers de type répertoire ET (option -a) qui appartiennent à webmaster

find / ( -name a.out -o -name ’*.o’ ) -atime +7 -exec rm {} \;
 

Cette commande supprimera tous les fichiers dont le nom correspond est « a.out » OU se terminant par « .o » ET dont
la date du dernier accès est antérieure à 7 jours.

find . -path './*softwares' -prune -o  -name "*.bat" -type f -exec grep -Hri "OSVERSION" {} \;

Cette commande permet de rechercher l’occurence « OSVERSION » dans tous les fichiers de type « .bat » en excluant
le répertoire « softwares ». Seul le chemin d’accès aux fichiers correspondants sera affiché.

Inodes
********

1. Renommer en utilisant le « inum »:

Pour connaitre l’inode:

ls -ailtr

 

Pour renommer en fonction du « inum »:

find -inum <N°inum> -exec mv {} <nouveau nom> \;

               Exemple 

find -inum  6869985 -exec mv {} test_1 \;

 

2. Supprimer en utilisant le « inum »:

Parfois certains fichiers sont nommés avec des caractères qui posent des problèmes d’accès ( Ex: « ~$ Mon document.doc » ).

On affiche le inum du fichier:

#ls -li
115288 -rw-r--r-- 1 monuser monuser     2359 2010-03-
25 23:01 ~$ Mon document.doc

 

Ensuite on supprime en fonction du « inum » du fichier

find -inum 115288 -exec rm {} \;

 

3. Trouver un ( ou plusieur ) type de fichier:

find . -name "*WRL*tmp*" -exec ls -l  {} \;

 

4. Renommer un fichier:

Ex: Touver tous les fichiers qui commencent par un « : » et les renommer en remplaçant les « : » en « __ ».

find . -iname ":*" | rename 's/:/_/g'

 

5. Supprimer plusieurs fichiers de même type:

find . -name "*.spc" -print0 | xargs -0 rm

 

6. Remplacer un caractère par un autre:

Exemple du fichier: ./projets2007/Cloe_espaceVEHICULE/graphique/:2eDS_Store

find . -iname ':*' | sed -e 's/:/__/g' 

Resultat: ./projets2007/Cloe_espaceVEHICULE/graphique/__2eDS_Store

 

7. Trouver tous les fichiers qui appartiennent à l’utilisateur « nagios », qui sont des liens et les afficher:

root@cir:/etc# find . -user nagios -type l -exec ls -l {} \;

 

8. Trouver tous les fichiers qui appartiennent à l’utilisateur « nagios » , qui sont des liens et changer les droits en « root.root »:

root@cirrus:/etc# find . -user nagios -type l -exec chown -h root.root {} \;

 

9. Trouver un fichier dans une arborescence:

find * -name "commandes.txt"

 

10. Remplacer un mot dans un type de fichier

find . -name "*.php" -print0 | xargs -0 sed -i 's/georges@6ma.fr/michel@6ma.fr/g'

 

11. Trouver des fichiers qui ont été modifié il y a moin de 1 jour

find /backup/rsnapshot/snapshots/monclient_2/daily.0/outlook-backup/Outlook/ -mtime -1 -print0 | xargs -r -0 -l ls -altr

 

12. Trouver des fichiers se terminant par « _status.ini » et contenant le mot « computer_admin_status »

find ./computers/infos/ -name "*_status.ini" -type f -exec ls {} \; -exec grep computer_admin_status {} \;

 

Commande: « SED »
*********************

1.0 Substituer un mot par un/des autre(s) mot(s)

sed -i 's/georges@6ma.fr/michel@6ma.fr/g'

1.1 Substituer un mot commencant par un motif spécifique…

sed -i 's/^toto.*/'toto'\t'192.167.5.4'\t'127'/g' /tmp/test.txt
cat /usr/local/nagios/etc/nagios.cfg | sed -e 's/check_for_updates=0//g' >> /tmp/nagios.cfg

2. Dans Vim:

:'<, '>s/admin_op/computers\\maintenance/g

le « \ » après « computers » permet de ne pas interprêter le « \ » car nous souhaitons remplacer le mot « admin_op » par « computers\maintenance »

2.1 Enlever tous les commentaires dans un fichiers

cat $TRAFFIC_IDENTIFIED | sed -e '/^[ ]*#/d' -e '/^[ ]*;/d' -e '/^[ ]*+/d' -e '/^$/d'

2.2 Remplacement d’un caractère dans un type de fichier

Exemple: recherche d’une chaîne à traiter dans le fichier « telsearch »

toto@monserveur:~$ cat /var/log/callerid_lookup/telsearch | grep -w "class=\"fn org\""
<h5><a href="/tresloin/rue-du-lac-54/mon-client-1" class="fn org">nom de mon client 1</a></h5>
 <h5><a href="/tresloin/rue-du-lac-54/monclient_2" class="fn org">Juridique CLIENT2</a></h5>
 <div id="telrbc35d75292b5630a" class="tel_item"><div class="telrecord vcard"><table class=\
 "record"><tr><td rowspan="2" class="r_resleft"> <h5>
 <a href="/tresloin/rue-du-lac-54/rassemblement-logement" class="fn org">Rassemblement logement</a></h5>
toto@monserveur:~$

Premier traitement: nettoyer pour enlever le superflux

toto@monserveur:~$ cat /var/log/callerid_lookup/telsearch | grep -w "class=\"fn org\"" | sed s/"<[^>]*>"/""/g
nom de mon client 1
Juridique CLIENT2
Rassemblement logement
toto@monserveur:~$

Second traitement: convertir de iso-8859-1 vers utf-8

toto@monserveur:~$ cat /var/log/callerid_lookup/telsearch | grep -w \
"class=\"fn org\"" | sed s/"<[^>]*>"/""/g | iconv -f iso-8859-1 -t utf-8
nom de mon client 1
Juridique CLIENT2
Rassemblement logement
toto@monserveur:~$

Troisième traitement: conserver que les deux premières lignes

toto@monserveur:~$ cat /var/log/callerid_lookup/telsearch | grep -w "class=\"fn org\"" | sed s/"<[^>]*>"/""/g | iconv -f iso-8859-1 -t utf-8 | head -n2
nom de mon client 1
Juridique CLIENT2
toto@monserveur:~$

Exemple d’utilisation de sed pour supprimer les accents:

toto@monserveur:~$ cat /var/log/callerid_lookup/telsearch | grep -w "class=\"fn org\"" | sed s/"<[^>]*>"/""/g | iconv -f iso-8859-1 -t utf-8 | sed 'y/àâçéèêëîïôöùüÂÀÇÉÈÊËÎÏÔÖÙÜ/aaceeeeiioouuAACEEEEIIOOUU/' | head -n1
 nom de mon client 1
toto@monserveur:~$

Remplacer entièrement une ligne:

ipsrc="188.138.100.46"; new_count="5000"; echo "$ipsrc $new_count"; cat black\
list_candidate.txt | sed -e 's/^'"$ipsrc"'.*/'"$ipsrc"' '"$new_count"'/g' > test.txt 
cat filetest.txt | sed -e 's/^'"ipsrc=192.168.9.110"'.*/'"ipsrc=192.168.9.\
 110"'\t'"srcport=5900"'\t'"dstport=50417"'\t'"total_count=800"'\t\t'"first\
 time=04-04-2012-13:49"'\t\t'"lastupdate=`date +%d-%m-%Y-%H:%M`"'\t'"[Case_9]"'/g'

Tronquer une addresse IP

moi@estaque [Mon-Entreprise]:~$ echo 192.168.30.2 | cut -d. -f1-3 | sed 's|\.||g'
 19216830
moi@estaque [Mon-Entreprise]:~$ echo 192.168.30.2 | cut -d. -f1-2 | sed 's|\.||g'
 192168
moi@estaque [Mon-Entreprise]:~$

Supprimer tous les caractères spéciaux

echo "bonjour !!! comment allez-vous???" | sed 's/\W/ /g'

Supprimer le retour chariot:
Il suffit simplement d’effacer le caractère « \r » (retour chariot) de fin de ligne.
Le caractère « \r » (retour chariot) est représenté symboliquement par « ^M », qui s’obtient par la séquence de touches suivante « CTRL-V » + « CTRL-M ».

sed 's/^M$//' fichier

Avec la version GNU-sed (gsed 3.02.80 et supérieur), on peut utiliser la notation ASCII :

sed 's/\x0D$//' fichier

On peut aussi utiliser la commande « tr » pour cela

cat mon_fichier.txt | tr -d '\r'

Supprimer plusieurs mots ou caractères

root@monserveur:$ grep -ri "version" /data/monfichier.txt | egrep -wi "Windows" | awk '{print $3,$4,$5}'
XP [version 5.1.2600]
root@monserveur:$ grep -ri "version" /data/monfichier.txt | egrep -wi "Windows" | awk '{print $3,$4,$5}' | sed 's/version\|\[\|\]\|XP\|\ //g'
5.1.2600
root@monserveur:$

 

Commande: « GREP »
***********************

1. Trouver un mot dans un fichier:
Exemple de syntaxe:

grep -ri "mot_exemple" *
grep -ri "mot_exemple" .      ;uniquement là ou on se trouve.

2. Ne pas afficher la ligne « grep »

clematite:~# ps aux | grep "file=/media/sata500/new-mobility/" | grep -v "grep"
 root     16742 17.2 68.2 4406680 4167740 ?     Sl   Jan12 499:03 /usr/bin/kvm -vnc :1 -k fr-ch -smp 4 -usbdevice tablet -usb -drive file=/media/sata500/new-mobility/mob-diskC.qcow2,index=0,media=disk -drive file=/media/sata500/new-mobility/mob-diskE.qcow2,index=2,media=disk -drive file=/media/sata500/new-mobility/mob-diskF.qcow2,index=3,media=disk -boot c -m 4048 -net nic,macaddr=41:58:00:12:32:54,model=rtl8139 -net tap,ifname=tap0,script=no -vga std -daemonize -pidfile /var/run/kvm/run_kvm_mobility.pid
clematite:~#

3. Trouver le nombre d’occurence dans un fichier et l’afficher:

root@cirrus:/tmp# grep -c "<digestenglish@mycop.coop>" /tmp/envoi_digest3.txt
 258
root@cirrus:/tmp#

4. Afficher uniquement les fichiers NE contenant PAS le mot recherche.

grep -riL "OpenERP" . | grep "installed-programs.txt"
./FOURMI08/FOURMI08_installed-programs.txt
./FOURMI16/FOURMI16_installed-programs.txt
./FOURMI02/FOURMI02_installed-programs.txt
./FOURMI38/FOURMI38_installed-programs.txt
./FOURMI37/FOURMI37_installed-programs.txt

ou

root@bourdon:/data/pldeploy# find ./logs/*/2 -name "*_pldeploy-infos.txt" -type f \
 -exec grep -L runas_admin_tasks.bat {} \;
./logs/FOURMI15/2/FOURMI15_pldeploy-infos.txt
./logs/FOURMI26/2/FOURMI26_pldeploy-infos.txt
./logs/FOURMI33/2/FOURMI33_pldeploy-infos.txt
./logs/FOURMI42/2/FOURMI42_pldeploy-infos.txt
root@bourdon:/data/pldeploy#

5. Afficher uniquement des nombres

dig <le nom fqdn machine> +short | grep -E "^[0-9]|[0-9]$"

6. Afficher le résultat sur plusieurs mots

grep -ri "svg-info-pldeploy" . | grep -iE "permitted | closed"

 

Commande « Zenity »
***********************

Envoi un message à l’utilisateur

grep -ri "test" $HOME | zenity --title "Backup" --progress --text="Sauvegarde en cours...merci de ne pas \
 éteindre votre poste" --pulsate --no-cancel --auto-close
zenity --info --display=:0.0 --text "Joyeux anniversaire !" 

 

Accéder à un lecteur réseau depuis un navigateur:
*******************************************************

La syntaxe est la suivante: file:///<lettre du lecteur>:/<mon dossier>
Ex:

file:///F:/COMPTA

 

Commande WGET
*********************

1. Télécharger un fichier sur un site protégé par htaccess

root@cerisier:/opt/install_nagios-ndo-centreon# wget http://download.mon-entreprise.com/centreon-2.3.8.tar.gz
 --2012-06-12 11:36:20--  http://download.mon-entreprise.com/centreon-2.3.8.tar.gz
 Resolving download.mon-entreprise.com...98.195.97.157 Connecting to download.mon-entreprise.com|98.195.97.157|:80... connected.
 HTTP request sent, awaiting response... 401 Authorization Required
 Authorization failed. root@cerisier:/opt/install_nagios-ndo-centreon# wget http://download.mon-entreprise.com/centreon-2.3.8.tar.gz --http-user=mon-entreprise --http-password=<mot de passe>
 --2012-06-12 11:36:05--  http://download.mon-entreprise.com/centreon-2.3.8.tar.gz
 Resolving download.mon-entreprise.com... 98.195.97.157
 Connecting to download.mon-entreprise.com|98.195.97.157|:80... connected.
 HTTP request sent, awaiting response... 401 Authorization Required
 Reusing existing connection to download.mon-entreprise.com:80.
 HTTP request sent, awaiting response... 200 OK
 Length: 7538568 (7.2M) [application/x-gzip]
 Saving to: `centreon-2.3.8.tar.gz' 100%[======================================================>] 7,538,568   2.21M/s   in 3.3s 2012-06-12 11:36:09 (2.21 MB/s) - `centreon-2.3.8.tar.gz' saved [7538568/7538568] root@cerisier:/opt/install_nagios-ndo-centreon# ls -altr
 total 7404
 drwxr-xr-x 3 root root    4096 Jun 11 12:18 ..
 -rw-r--r-- 1 root root 7538568 Jun 11 13:58 centreon-2.3.8.tar.gz
 drwxr-x--- 2 root root    4096 Jun 12 11:36 .
 root@cerisier:/opt/install_nagios-ndo-centreon#

 

Encryption
*************

1. Commande « encfs »:

— Pour monter le dossier crypté:

encfs /data/.safe /home/monhome/pwd

Entrer ensuite le mot de passe !

— Pour démonter après consultation:

fusermount -u /home/monhome/pwd

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

La suite aux pages suivantes 😉

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.