Outils pour utilisateurs

Outils du site


blog

8 billet(s) pour mars 2026

Notes conteneurs oras artifact OCI2026/03/23 21:13Jean-Baptiste
Notes podman secret2026/03/23 15:10Jean-Baptiste
Notes ansible podman2026/03/23 14:08Jean-Baptiste
Notes podman volume2026/03/23 14:00Jean-Baptiste
Find list - Trouver des fichiers à partir d'une liste2026/03/18 14:32Jean-Baptiste
AWX inventaire vault2026/03/17 18:04Jean-Baptiste
AWX - Configuration git en local (sans serveur web)2026/03/05 16:24Jean-Baptiste
OpenSMTP2026/03/03 16:58Jean-Baptiste

Python paradigmes

Voir :

Python 4 algo différent pour faire des factorielle

Autres

2025/03/24 15:06

Notes mutt

#apt-get install mutt-patched
sudo apt-get install neomutt
 
# Pour voir les mails en HTML
sudo apt-get install w3m
 
# Pour cliquer sur les liens HTML [remplace ''urlview'')
sudo apt-get install urlscan

Voir http://doc.ubuntu-fr.org/mutt

~/.bash_aliases

alias mutt='env BROWSER=w3m neomutt'
mkdir ~/.mutt
set realname = "Prenom NOM"
set editor="vim" 
 
# locales FR pour les nom des jours et mois
set locale="fr_FR"
 
set spoolfile="imaps://User:PASSWORD@Server/INBOX"

TODO : Fichier à déposer sous git [mdp exclu]


Configuration Mutt

~/.muttrc

# configuration de base
set realname = ""
set header_cache =~/.mutt/cache/headers
set certificate_file =~/.mutt/certificates
set message_cachedir =~/.mutt/cache/bodies
 
####GMAIL
 
# configuration imap
set spoolfile="imaps://imap.gmail.com:993/"# l'endroit ou le MTA stocke vos messages ("spool file")
set imap_user = "VOTRE_ADDRESSE@gmail.com"
#set pop_pass =
set imap_passive="no"
set imap_check_subscribed="yes"
set imap_list_subscribed="yes"
# configuration SMTP
set smtp_url = "smtps://VOTRE_ADDRESSE@gmail.com@smtp.gmail.com:465/"
# set smtp_pass =
set from = "VOTRE_ADDRESSE@gmail.com"set use_envelope_from=yes # Pour que postfix ou sendmail ne change pas votre from
 
####Pour Hotmail
####HOTMAIL
#set spoolfile=pops://pop3.live.com:995/
#set pop_user="VOTRE_ADDRESSE@hotmail.fr"
#set ssl_force_tls = yes
#set imap_passive="no"
#set imap_check_subscribed="yes"
#set imap_list_subscribed="yes"
#set smtp_url="smtps://VOTRE_ADDRESSE@hotmail.fr@smtp.live.com:25"
#set from="VOTRE_ADDRESSE@hotmail.fr"
 
# petit plus
set trash = "~/.mutt/Trash"
set postponed="~/.mutt/Draft"
set folder = ~/Mail # Le répertoire des mailboxes
set imap_check_subscribed
set mail_check = 120
set timeout = 300
set imap_keepalive = 300
set signature="~/.mutt/.signature" # votre fichier signature
 
# locales FR pour les nom des jours et mois
set locale="fr_FR"
 
# Format de date
set date_format="%A %d %b %Y à %H:%M:%S (%Z)"
 
# phrase d'intro pour réponse quotée
set attribution="Le %d, %n a écrit :"
set forward_format="[Fwd: %s]"
set forward_quote
 
#
mailboxes !
#alternates
 
color attachment magenta default # attachments
color body brightred default "(ftp|http)://[^ ]+" # point out URLs
color body brightcyan default [-a-z_0-9.]+@[-a-z_0-9.]+ # e-mail addresses
color bold brightblue default # boldface text
color error brightwhite red # error messages
color hdrdefault magenta default # default color of message header
color header brightmagenta default ^(From): # From and Subject header
color header brightwhite default ^(Subject): # From and Subject header
color header brightwhite default ^(Date): # Date header
color header white default ^(In-Reply-To):
color indicator brightred default # indicator bar
color markers brightblue default # wrapped line markers (+)
color message brightblack green # status messages
color normal default default # default
color quoted yellow default # quoted text, 1st quote level
color quoted1 green default # quoted text, 2nd quote level
color quoted2 brightblue default # quoted text, 3rd quote level
color quoted3 blue default # quoted text, 4th quoet level
color search black yellow # matched search patterns in pager
color signature red default # the signature (after sigdashes)
color status default blue # status lines
color tilde brightblue default # ``~'' used to pad blank lines
color tree green default # thread tree in the index menu
color underline brightgreen default # underlined text
 
# Pour la gestion des accents
#set locale="iso-8859-15"
 
set pager_index_lines=7
set pager_stop
 
#
set implicit_autoview
auto_view text/html application/x-pgp-message # view html automatically
set mailcap_path="~/.mailcap"
set mailcap_sanitize=yes
 
alternative_order text/plain text/enriched text/html # save html for last
~/.mailcap
text/html; lynx -dump -force-html -assume_charset %{charset} -localhost %s; copiousoutput ###lire les pages html avec le navigateur lynx
 
video/*; mpayer %s ###pour lire les vidéos avec mplayer
 
audio/*; play %s ###pour écouter les sons avec la commande play
 
image/*; feh %s ###visionner les images avec l'éditeur feh
 
# Fichier d'alias :
set alias_file='~/.mutt/.alias_mutt'
source '~/.mutt/.alias_mutt'

Exemple de conf pour un accès directe type Mailbox http://www.elho.net/mutt/maildir/ :

~/.muttrc

set mbox_type=Maildir
 
set folder="~/Maildir"
set mask="!^\\.[^.]"
set mbox="~/Maildir"
set record="+.Sent"
set postponed="+.Drafts"
set spoolfile="~/Maildir"

Classer les mails par date

~/.muttrc

set sort_aux = last-date-received                           
set sort = reverse-threads

Visualisation de mail en HTML

Source : http://christophe.masutti.name/index.php?article16/a-propos-de-mutt

A jouter ~/.muttrc

set implicit_autoview
auto_view text/html  application/x-pgp-message
set mailcap_path="~/.mailcap"
set mailcap_sanitize=yes

Puis, dans .mailcap, au choix :

Si vous désirez utiliser Lynx*:

.mailcap

text/html; lynx -dump -force-html -assume_charset %{charset} -localhost %s; copiousoutput

Si vous désirez utiliser W3m:

.mailcap

text/html; w3m -dump %s; copiousoutput; nametemplate=%s.html

Si vous désirez utiliser Links ou Links2:

.mailcap

text/html; links2 -dump %s; nametemplate=%s.html; copiousoutput

Si vous désirez utiliser Elinks:

.mailcap

text/html; elinks -default-mime-type text/html %s; needsterminal;

Utilisation

Récupérer un message marqué à supprimer

Pour effacer un message :

touche [d] sur le message concerné

mutt vous demandera confirmation pour réellement effacer les messages quand vous quitterez mutt

Le(s) message(s) restent disponible tant que vous n'avez pas quitté mutt.

Seulement voilà, les messages marqué comme “à effacer” ne sont plus sélectionnable.

La touche [t] servant à marquer un message (t comme tag) permet de sélectionner notre message que nous souhaitons finalement garder.

Puis touche [u] (u comme undo ou undelete)

Pb

Erreur GPGME: CMS protocol not available
GPGME: CMS protocol not available

ou

GPGME : protocole CMS non disponible
Solution
sudo apt-get install gpgsm
Err color not supported by term
$ neomutt
Looking up imap.acme.fr...
Connecting to impa.acme.fr...
SSL/TLS connection using TLS1.3 (ECDHE-RSA/AES-256-GCM/AEAD)
Logging in...
/home/jean/.muttrc:220: color sidebar_highlight black color8: color not supported by term
/home/jean/.muttrc:224: color sidebar_divider color8 black: color not supported by term
/home/jean/.muttrc:230: color sidebar_ordinary color245 default: color not supported by term
/home/jean/.muttrc:232: color sidebar_spool_file color207 default: color not supported by term
/home/jean/.muttrc:234: color sidebar_unread color136 default: color not supported by term
source: errors in /home/jean/.muttrc
Press any key to continue...

Solution

env TERM=xterm-256color neomutt
2025/03/24 15:06

Mémo Tmux

A noter qu'il existe Critmux (tmux + Docker + criu) permettant de geler l'état de la session et de l’enregistrer. Voir snapshot_de_process_avec_criu

Voir https://wiki.debian.org/fr/Tmux

Équivalent screen à [Ctrl] + [a] et l ((redisplay) Fully refresh current window.) Corrige la taille de la fenêtre

Mémo

[Ctrl] + b et D Déconnecter quelqu'un (pratique pour redimensionner le tmux à une taille pour grande)

Ou alors :

tmux at -d

Tmux dans un Tmux - changer le raccourci clavier

Changement du raccourcie Ctrl+b en Ctrl+a

Ctrl + b
:set-option -g prefix C-a

Taille de la fenêtre petite quand une session est restée attachée

Vous pouvez détachez l'ancienne session, si elle n'est plus utilisée. [Ctrl] + [b] puis [Shift] + [d]

(0) /dev/pts/0: 0 [119x21 xterm] (utf8)
(1) /dev/pts/6: 0 [170x48 xterm] (utf8)

Puis choisissez la session à fermer, puis [Entrée]

Changer l'ordre des fenêtres (sur la même vue)

Rotate window [Ctrl] + b Puis [Ctrl] + o

Nnext layout [Ctrl] + b Puis [Ctrl] + [Space]

Afficher l'heure

[Ctrl]] + b Puis t

Nommer / renommer les sessions

Créer une nouvelle session nommée

tmux new -s session-name

[CTRL] + [B], [$] Pour renommer la session

Pour attacher une session donnée

tmux a -t session-name

[CTRL] + [B], [s] Pour naviguer entre les sessions
ou
[CTRL] + [B], [w]

Renommer une session

$ tmux ls
$ # tmux rename-session -t old_name new_name
$ tmux rename-session -t 0 new_name
no current client
$ tmux ls

Changer la couleur de la bare de status

set -g status-bg grey

ClusterShell ClusterSSH

setw synchronize-panes on

A tester ~/.tmux.conf

bind = set -g synchronize-panes

Pb

open terminal failed: not a terminal
$ ssh srv1 -- tmux at -t 1
open terminal failed: not a terminal
Solution

Utiliser ssh -t

ssh -t srv1 -- tmux at -t 1
open terminal failed: missing or unsuitable terminal: unknown
tmux

Erreur

open terminal failed: missing or unsuitable terminal: unknown

Solution

export TERM=linux
tmux
 
# A tester : 
#export TERM=linux-vt

Voir : /usr/share/terminfo/

Voir aussi

Host plop1
        Hostname 192.168.1.20
        SetEnv TERM=linux
Le pane est renommé automatiquement
solution

~/.tmux.conf

set allow-rename off
Pb backspace ne fonctionne pas
E558: Terminal entry not found in terminfo                                                               
'tmux-256color' not known. Available builtin terminals are:                                              
    builtin_amiga                                                                                        
    builtin_beos-ansi                                                                                    
    builtin_ansi                                                                                         
    builtin_pcansi                                                                                       
    builtin_win32                                                                                        
    builtin_vt320                                                                                        
    builtin_vt52                                                                                         
    builtin_xterm                                                                                                                                                                                                 
    builtin_iris-ansi                                                                                    
    builtin_debug                                                                                        
    builtin_dumb                                                                                         
defaulting to 'ansi'  
Solution
apt-get install ncurses-term
2025/03/24 15:06

KVM LibVirt

Voir :

Votre CPU gère t-il VT ou AMD-V ?

egrep --color '^flags.*(vmx |svm )' /proc/cpuinfo

Ou

apt-get install cpu-checker
kvm-ok

Nested KVM ?

cat /sys/module/kvm_intel/parameters/nested
cat /sys/module/kvm_amd/parameters/nested

Parfois il faut activer l'option dans le BIOS

# virt-host-validate
...
   LXC: Checking if device /sys/fs/fuse/connections exists                   : FAIL (Load the 'fuse' module to enable /proc/ overrides)
   
echo fuse >> /etc/modules
modprobe fuse

Sous RedHat désactiver le NetworkManager

systemctl stop NetworkManager
systemctl disable NetworkManager

et ajouter la ligne suivante dans /etc/sysconfig/network-scripts/ifcfg-*

/etc/sysconfig/network-scripts/ifcfg-*

NM_CONTROLLED=no

Install

apt-get install --no-install-recommends qemu-kvm libvirt-clients libvirt-daemon-system
adduser jean libvirt
#adduser jean kvm

~/.bash_aliases

alias virsh="virsh -c qemu:///system"

ou

~/.bashrc

export LIBVIRT_DEFAULT_URI="qemu:///system"
virsh net-autostart default
virsh net-start default

/etc/default/libvirt-guests

#ON_BOOT=ignore
ON_BOOT=start
 
#START_DELAY=0
START_DELAY=30
 
#PARALLEL_SHUTDOWN=0
PARALLEL_SHUTDOWN=1
 
#SHUTDOWN_TIMEOUT=300
SHUTDOWN_TIMEOUT=180

Pour virt-sysprep (après clonage de VM)

apt-get install libguestfs-tools
UEFI
apt-get install ovmf

Virt-install

Exemple :

virt-install \
--name vm1 \
--ram 512 \
--location=http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/ \
--initrd-inject=/tmp/preseed.cfg \
--extra-args="console=ttyS0,115200n8 serial locale=fr_FR console-setup/ask_detect=false keyboard-configuration/layoutcode=fr hostname=virtual domain=unassigned-domain interface=auto" \
--vcpu=1 \
--vnc \
--vnclisten=0.0.0.0 \
--os-type=linux \
--os-variant=debianwheezy \
-w bridge=virbr0 \
-w bridge=br1 \
-w network=default \
--console pty,target_type=serial \
--disk format=qcow2,size=8,bus=virtio,path=/var/lib/libvirt/images/vm1.qcow2
#--connect qemu:///system
#--location=http://archive.ubuntu.com/ubuntu/dists/precise/main/installer-amd64/ \
#--noautoconsole \
#--autostart \
#--cdrom=/var/lib/libvirt/images/test.iso \

--extra-args ne marche que si --location est défini.

Réseaux

PCI Passthrough - IOMMU

Voir :

BIOS/UEFI

Première étape, faire un tour dans le BIOS/UEFI pour activer les choses suivantes :

  VT-D (cas d’un CPU intel)
  AMD-Vi (cas d’un CPU AMD)

Pour vérifier :

# dmesg | grep -e "Directed I/O"
[    1.693161] DMAR: Intel(R) Virtualization Technology for Directed I/O

Pour du AMD :

dmesg | grep AMD-Vi

Dans le BIOS activer “SR-IOV” ?

# ls /sys/class/iommu/*/
/sys/class/iommu/dmar2/:
devices  intel-iommu  power  subsystem  uevent

/sys/class/iommu/dmar4/:
devices  intel-iommu  power  subsystem  uevent

/sys/class/iommu/dmar5/:
devices  intel-iommu  power  subsystem  uevent

/sys/class/iommu/dmar6/:
devices  intel-iommu  power  subsystem  uevent

/sys/class/iommu/dmar7/:
devices  intel-iommu  power  subsystem  uevent

/etc/modprobe.d/blacklist-nouveau.conf

blacklist nouveau
options nouveau modeset=0

/etc/default/grub

#GRUB_CMDLINE_LINUX_DEFAULT="modprobe.blacklist=nouveau modprobe.blacklist=nvidiafb"
#GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt rd.driver.pre=vfio-pci video=efifb:off vfio_iommu_type1.allow_unsafe_interrupts=1"
 
#GRUB_CMDLINE_LINUX="kvm_iommu=on iommu=pt"
GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt pci-stub.ids=10de:1b81,10de:10f1 video=efifb:off"
update-grub
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
reboot
dmesg | grep 'remapping'

Pour nvidia

echo "options kvm ignore_msrs=1 report_ignored_msrs=0" > /etc/modprobe.d/kvm.conf
# lspci -nn | grep -i nvidia
3b:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P5000] [10de:1bb0] (rev a1)
3b:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1)
af:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P5000] [10de:1bb0] (rev a1)
af:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1)

/etc/modprobe.d/vfio.conf

#options vfio-pci ids=10de:1bb0,10de:10f0
options vfio-pci ids=10de:1bb0
options vfio-pci disable_vga=1
echo 'vfio-pci' > /etc/modules-load.d/vfio-pci.conf
update-initramfs -u
# dmesg |grep "Directed I/O"
[    1.705358] DMAR: Intel(R) Virtualization Technology for Directed I/O
#!/bin/bash
shopt -s nullglob
for g in /sys/kernel/iommu_groups/*; do
    echo "IOMMU Group ${g##*/}:"
    for d in $g/devices/*; do
        echo -e "\t$(lspci -nns ${d##*/})"
    done;
done;
dmesg | grep -i vfio
# lspci -nnk |grep -i -A 2 nvidia
3b:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P5000] [10de:1bb0] (rev a1)
        Subsystem: Dell GP104GL [Quadro P5000] [1028:11b2]
        Kernel driver in use: vfio-pci
--
3b:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1)
        Subsystem: Dell GP104 High Definition Audio Controller [1028:11b2]
        Kernel driver in use: snd_hda_intel
--
af:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P5000] [10de:1bb0] (rev a1)
        Subsystem: Dell GP104GL [Quadro P5000] [1028:11b2]
        Kernel driver in use: vfio-pci
--
af:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1)
        Subsystem: Dell GP104 High Definition Audio Controller [1028:11b2]
        Kernel driver in use: snd_hda_intel
# echo "0000:3b:00.0" | tee /sys/bus/pci/drivers/vfio-pci/unbind
0000:3b:00.0
# echo "0000:3b:00.0" | tee /sys/bus/pci/drivers/vfio-pci/unbind
0000:3b:00.0
tee: /sys/bus/pci/drivers/vfio-pci/unbind: No such device
cd /sys/bus/pci/devices/0000\:3b\:00.0
echo 1 > rom
cat rom > /tmp/gpu.rom
echo 0 > rom

/etc/libvirt/qemu/vm1.xml

   <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x3b' slot='0x00' function='0x0'/>
      </source>
      <rom bar='on'/>
      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0xaf' slot='0x00' function='0x0'/>
      </source>
      <rom bar='on'/>
      <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
    </hostdev>
2025/03/24 15:06

Test de perf IO disque

Voir :

Voir :

  • atop
  • stress-ng
  • iozone3
stress-ng --all 0 --maximize --aggressive
iostat -hx 5
iostat -xmt 1

Linux : tester les performances I/O

hdparm -t -T /dev/sda
dd bs=8192 count=$((4096 * 128)) if=/dev/zero of=test conv=fdatasync
bonnie++ -d /mnt -r 8000 -u toto

#time -p dd if=/dev/zero of=/tmp/test1.img bs=1M count=500 oflag=dsync
#time -p dd if=/dev/zero of=/tmp/test1.img bs=500M count=1 oflag=dsync
time -p dd if=/dev/zero of=/tmp/test1.img bs=8192 count=$((8192 * 64)) oflag=dsync
sudo apt-get install sysbench
# --file-test-mode=STRING       test mode {seqwr, seqrewr, seqrd, rndrd, rndwr, rndrw}
sysbench --test=fileio --file-test-mode=seqwr run
 
sysbench --test=fileio --file-total-size=4G prepare
sysbench --test=fileio --file-total-size=4G --file-test-mode=rndrd --max-time=5 run
sysbench --test=fileio --file-total-size=4G --file-test-mode=rndwr --max-time=5 run
sysbench --test=fileio --file-total-size=4G cleanup
Disk Read-Ahead
blockdev --report
blockdev --getra /dev/sda
blockdev --setra 256 /dev/sdc
cat /sys/block/sda/queue/read_ahead_kb
fio

Source https://www.geekarea.fr/wordpress/?p=769

apt-get install fio
cat > plop.fio << EOF
[global]
bs=64k
direct=1
rw=randrw
ioengine=libaio
iodepth=2
zonesize=256m
zoneskip=2g
write_bw_log=str
 
[/dev/vdb]
EOF
 
fio plop.fio

Linux IO scheduler

# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]

/etc/default/grub

# GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

IOWAIT

2025/03/24 15:06
blog.txt · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki