Table des matières
4 billet(s) pour janvier 2026
| AWX sur K8S Kind - partage de fichier pour les blob - Execution pods | 2026/01/26 10:15 | Jean-Baptiste |
| Notes rsh rcp | 2026/01/21 18:08 | Jean-Baptiste |
| Git - Duplication d'un dépôt | 2026/01/19 10:22 | Jean-Baptiste |
| Exemple simple de conf Nagios | 2026/01/14 10:07 | Jean-Baptiste |
Notes commandes ss netstat et autres
CLOSE-WAIT
ss --tcp state CLOSE-WAIT ss --tcp state CLOSE-WAIT --kill
/proc/sys/net/ipv4/tcp_keepalive_time
Voir :
Commande ss
ss -tn -4 state established not src 127.0.0.1 ss -n -t src :5455
# ss -s Total: 281 (kernel 3060) TCP: 10 (estab 4, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0 Transport Total IP IPv6 * 3060 - - RAW 0 0 0 UDP 2 2 0 TCP 10 7 3 INET 12 9 3 FRAG 0 0 0
Commande netstat
Voir /proc/net/netstat
netstat -nat |sed '2d' | awk '{print $6}' | sort | uniq -c | sort -n
1 Foreign
4 SYN_RECV
12 LISTEN
131 ESTABLISHED
191 CLOSE_WAIT
270 TIME_WAIT
C'est l'équivalent de
ss -s
Notes commande yum dnf rpm
Voir aussi :
- rpm-ostree
- PackageKit (pkcon)
Voir autres commandes :
- package-cleanup
show duplicate
yum search postgresql12-server --show-duplicate
Test, dry-run --assumeno pour “Assume no”
yum install --assumeno httpd
Lister tous les RPMs
rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" |sed -e 's/.(none)$//' rpm -qa
Lister les derniers paquets installés
rpm -qa --last |head
Effacer le journal de transaction
yum-complete-transaction --cleanup-only
Effacer un paquet de la base RPM seulement, mais garder les fichiers
rpm --justdb -e plop
Connaître la version des paquets installés
rpm -q -i plop yum list plop yum list | grep plop
Query Available Packages From Selected YUM Repository \ Disable all repositories and then enable just selected repo.
yum --disablerepo="*" --enablerepo="plop" list available
yum --nogpgcheck localinstall https://acme.fr/plop/plop.rpm # rpm -i --nosignature plop.rpm
Uninstall any existing/partially installed versions.
yum --setopt=tsflags=noscripts -y remove google-chrome-stable # Ou rpm -e --noscripts google-chrome-stable
Voir les scripts du RPM
rpm -qp --scripts my_package.rpm > ListOfScripts
Installer un paquet dans une autre arbo
# rpm ... --relocate /opt=/usr/opt --relocate /etc=/usr/etc ... rpm -ivh --relocate /usr/local/avamar=NEW-BASE-PATH --relocate /var/avamar=/NEW-VAR-PATH AVAMAR-LINUX.RPM rpm -Uvh --prefix /mnt/extern=/some/other/path some_rpm_name-some_rpm_version
update
yum update #dnf update --nogpgcheck # ou yum update --allowerasing
autoupdate
env YUMINTERACTIVE=0 yum-autoupdate
rpmconf
Pour savoir les différences entre les nouvelles versions de fichiers de conf des paquets RPM et les anciens fichiers de conf
Comme pour les fichiers :
- rpmnew
- rpmsave
Les groupes
Pour connaitre la liste des groupes disponibles :
dnf grouplist
Pour avoir des informations sur un groupe, comme les paquets qui le composent :
dnf groupinfo <"Nom du Groupe">
Pour installer un groupe :
dnf groupinstall <"Nom du Groupe">
Dépendances
Lister les dépendances d'un paquet RPM
rpm -qpR {.rpm-file} rpm -qR {package-name}
Ignorer les dépendances avec --nodeps
rpm -e --nodeps sshpass
Supprimer et installer un paquet sur la même ligne de commande
# yum shell > remove libcurl > install libcurl-minimal > run > quit
Ou
yum swap -- install libcurl-minimal -- remove libcurl
Vérifier la signature des paquets
rpm -K *.rpm -v
Spécifier une version
Connaître les différentes versions disponible pour un paquet
yum --showduplicates list php
Export de la liste des paquets
#rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}\n" > installed-rpm.txt rpm -qa
Utiliser la liste pour réinstaller les paquets
LANG=C yum install $(cat installed-rpm.txt) |grep -v ^Package
Exclure un paquet / ne pas mettre à jour un paquet
Oneshot sur une commande
dnf --exclude=mysql\* --exclude=httpd\* update
En changeant la conf par défaut
/etc/yum.conf
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exclude=kernel* kmod-kvdo
En forçant une version avec le plugin versionlock
yum versionlock add freetype yum versionlock list yum versionlock clear
Upgrade OS - Montée de version
Voir leapp
yum-plugin / dnf-plugin
Exemple de plugin :
Autres
Options conflits
Try to add --allowerasing to command line to replace conflicting packages or --skip-broken to skip uninstallable packages or --nobest to use not only best candidate packages.
Fastestmirror
echo 'fastestmirror=1' >> /etc/dnf/dnf.conf
Modules
Les dépôts modulaires sont arrêtés à partir de Fedora Linux 39. Cela signifie que les paquets fedora-repos-modular et fedora-repos-rawhide-modular sont supprimés, et les modules ne sont plus disponibles. Un module consistait en la possibilité de proposer plusieurs versions alternatives d’un même paquet ou ensemble de paquets, souvent entre deux versions d’un langage de programmation type PHP. Les versions de Fedora Linux antérieures restent toujours fournies le temps de leur maintenance officielle, donc un mois après Fedora Linux 40. Il y avait en effet peu de paquets qui exploitaient cette possibilité et plus personne ne maintenait l’outillage nécessaire à leur production. Les ressources du projet Fedora et des empaqueteurs seront moins dispersées par cet effort pour une solution qui n’a manifestement pas trouvé son public, sans doute à cause de l’impossibilité d’avoir plusieurs versions en parallèle d’un même module.
Notes dépendances
---> Package java-1.8.0-openjdk-headless.x86_64 1:1.8.0.201.b09-1.el6_10 will be installed
--> Processing Dependency: pcsc-lite-devel(x86-64) for package: 1:java-1.8.0-openjdk-headless-1.8.0.201.b09-1.el6_10.x86_64
--> Finished Dependency Resolution
Error: Package: 1:java-1.8.0-openjdk-headless-1.8.0.201.b09-1.el6_10.x86_64 (rhel-6-server-rpms)
Requires: pcsc-lite-devel(x86-64)
**********************************************************************
yum can be configured to try to resolve such errors by temporarily enabling
disabled repos and searching for missing dependencies.
To enable this functionality please set 'notify_only=0' in /etc/yum/pluginconf.d/search-disabled-repos.conf
**********************************************************************
Pb
Notes pb Gestion conflits
# yum downgrade glibc
Modules complémentaires chargés : product-id, search-disabled-repos, subscription-manager
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet glibc.x86_64 0:2.17-105.el7 sera une rétrogradation
--> Traitement de la dépendance : glibc-common = 2.17-105.el7 pour le paquet : glibc-2.17-105.el7.x86_64
---> Le paquet glibc.x86_64 0:2.17-106.el7_2.8 sera effacé
--> Résolution des dépendances terminée
Erreur : Paquet : glibc-2.17-105.el7.x86_64 (vmx)
Requiert : glibc-common = 2.17-105.el7
Installé : glibc-common-2.17-106.el7_2.8.x86_64 (@base)
glibc-common = 2.17-106.el7_2.8
Disponible : glibc-common-2.17-105.el7.x86_64 (vmx)
glibc-common = 2.17-105.el7
Erreur : Paquet : glibc-common-2.17-106.el7_2.8.x86_64 (@base)
Requiert : glibc = 2.17-106.el7_2.8
Suppression : glibc-2.17-106.el7_2.8.x86_64 (@base)
glibc = 2.17-106.el7_2.8
Rétrogradé par : glibc-2.17-105.el7.x86_64 (vmx)
glibc = 2.17-105.el7
Vous pouvez essayer d'utiliser --skip-broken pour contourner le problème
Vous pouvez essayer d'exécuter : rpm -Va --nofiles --nodigest
Solution
yum downgrade glibc glibc-common
En avec la commande rpm :
rpm -Uvh --oldpackage glibc*.rpm
Voir également --skip-broken to skip uninstallable packages or --nobest to use not only best candidate packages
Pb yum error in PREUN scriptlet when removing packages
source : https://serverfault.com/questions/613256/yum-error-in-preun-scriptlet-when-removing-packages
It seems like somehow yum cached data and the rpm database got out of sync with each other I guess. Try running the next commands:
su -c 'yum clean all && rpm --rebuilddb' su -c 'package-cleanup --problems'
Then run:
su -c 'yum erase zarafa*'
Edit #1: Try running the next command:
su -c 'yum --setopt=tsflags=noscripts remove zarafa*'
If that doesn't work, try this:
su -c 'rpm -e --noscripts zarafa*'
Notes commande xargs
Strip char / trim ⇒ utiliser xargs ex :
load5=$(echo $UPTIME | awk -F, '{print $5}' | xargs)
md5sum multithread
#find . -not -name "md5sum.txt" -follow -type f -exec md5sum {} \; > md5sum.txt find . -not -name "md5sum.txt" -follow -type f -print0 |xargs -0 -L1 -P"$(nproc)" md5sum > md5sum.txt
dig A +short acme.local |xargs -P5 -I '{}' bash -c 'ping -c 1 -W 2 {} >/dev/null 2>&1 || echo {}'
cat 20_ok_ping.txt |xargs -L1 -I '{}' -P50 bash -c 'SRV={} ; ssh -p 22 -o PasswordAuthentication=no -o ChallengeResponseAuthentication=no -o PreferredAuthentications=publickey -o StrictHostKeyChecking=no -o ConnectTimeout=3 root@${SRV} true 2>/dev/null && echo +${SRV} || echo -${SRV}' |tee 30_ssh_p22.txt
pidof sleep | xargs kill -9
Renommer tous les fichiers *.txt d'un répertoire
ls -1 ${repertoire}/*.txt | xargs -I {} -t mv {} {}.csv
cat bash-xargs-demo.txt | xargs -I % sh -c 'echo %; mkdir %' xargs -a bash-xargs-demo.txt -I % sh -c 'echo %; mkdir %'
Prompt before launch
find * | xargs -p rm -rf
use xargs to copy a file to multiple directories at once; in this example we are trying to copy the file.
echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx
Avec délimitateur
$ echo 'my new file' | xargs -d '\n' touch $ ls -l total 0 -rw-r--r--. 1 shs shs 0 Oct 15 12:41 file1 -rw-r--r--. 1 shs shs 0 Oct 15 12:41 file2 -rw-r--r--. 1 shs shs 0 Oct 15 12:41 file3 -rw-r--r--. 1 shs shs 0 Oct 15 12:57 'my new file'
$ echo "1,2,3,4,5" | xargs -d, echo 1 2 3 4 5
$ echo "1,2,3,4,5" | xargs -d, -L 1 echo 1 2 3 4 5
Copie de fichiers
find /backup/ -type f | xargs -n1 -i cp {} /var/www/backup/
Curl - flood
seq 1 200 | xargs -n1 -P10 curl "http://localhost:5000/example"
Curl - test urls
xargs -a urls.txt -L1 -I '{}' -P50 bash -c 'echo $( curl --connect-timeout 2 -k -s -o /dev/null -w "%{http_code};" "{}" ; echo "{}" )' | tee ping_urls.csv
Curl can now fetch several websites in parallel
curl --parallel --parallel-immediate --parallel-max 3 --config websites.txt
websites.txt
url = "website1.com" url = "website2.com" url = "website3.com"
xargs avec Ansible
Voir aussi :
- traitements_paralleles notes_ansible
xargs -a inventory.lst -L1 -I % -P50 bash -c "ansible --ssh-common-args='-o StrictHostKeyChecking=no' -i %, -e ansible_port=2222 -b -u admin -m command -a 'grep -q 192\.168\.223\.0 /etc/hosts.allow' all" |tee outpout.log
4 GB RAM is recommended per 100 forks… about 100MB per fork… The baseline value for [CPU capacity for forks] is 4 forks per core.
Notes commande su
Voir aussi :
Usage
runs as a different user with password
su - username <<EOF enterpasswordhere enter commands to run as the new user EOF
Pb
la comande su lancée avec le compte root demande le mot de passe
Voir aussi :
- suid
- SELInux
root is prompted for the user1's password
Source : https://bbs.archlinux.org/viewtopic.php?id=217142
/etc/pam.d/su /etc/pam.d/su-l
auth sufficient pam_rootok.so
Audit modification droits systeme de fichier avec auditd
Voir :
systemctl status auditd
Par défaut, vous ne pourrez pas arrêter ce service lorsqu’il s’exécute. Il y a donc lieu d’éditer le fichier de lancement du service /lib/systemd/system/auditd.service et de modifier la directive RefuseManualStop en la passant à no :
/lib/systemd/system/auditd.service
RefuseManualStop=no
Une fois le fichier modifié, pour le redémarrer, faites :
systemctl daemon-reload systemctl restart auditd
Ajout de règles
Sur CentOS 7, les règles doivent être ajoutées au fichier /etc/audit/rules.d/audit.rules.
/etc/audit/rules.d/audit.rules
#Surveillance du fichier /etc/ssh/sshd_config -w /etc/ssh/sshd_config -p w -k ssh_configuration_change #Audit de l'exécution des Commandes 32 et 64 bits -a exit,always -F arch=b64 -S execve -k root_command_executing -a exit,always -F arch=b32 -S execve -k root_command_executing #Audit sur l'exécution de la commande passwd -w /bin/passwd -p x -k passwd_command_execution
Après redémarrage du service, vous pouvez lister les règles actives en tapant :
auditctl -l
Recherche des événements
Pour trouver les lignes du fichier /var/log/audit/audit.log qui se réfèrent à la ligne concernant la modification de la configuration du fichier /etc/ssh/sshd_config, tapez à partir de l’invite de commandes :
ausearch -f /etc/ssh/sshd_config -i
Vous pouvez aussi disposer du nombre d’occurrences pour chacun des audits effectués sur les fichiers par le démon :
aureport -f -i --summary
ausearch --start 01/12/20 -m user_end --raw | aureport -x --summary
Autres
aureport --start today --event --summary -i
Règle non persistante
Règle non persistante reboot, redémarrage service
auditctl -w /etc/hosts -p warx -k monitor-hosts
Afficher les règles
auditctl -l
ausearch -ts today -k monitor-hosts
Rapport clair
aureport -k
Effacer les règles sauvegardées
systemctl restart auditd
Règle persistante
- /etc/audit/audit.rules
# First rule - delete all -D # Increase the buffers to survive stress events. # Make this bigger for busy systems #-b 320 -b 8192 ## Set failure mode to panic -f 2 # Feel free to add below this line. See auditctl man page -w /tmp/plop1 -p wrxa -k monitor-plop1
Voici un exemple de configuration auditd qui cherche à enregistrer des actions pouvant être dignes d’intérêt (source : https://www.ssi.gouv.fr/uploads/2016/01/linux_configuration-fr-v1.2.pdf)
/etc/audit/audit.rules
# Exécution de insmod , rmmod et modprobe -w /sbin/insmod -p x -w /sbin/modprobe -p x -w /sbin/rmmod -p x # Journaliser les modifications dans /etc/ -w /etc/ -p wa # Surveillance de montage/démontage -a exit ,always -S mount -S umount2 # Appels de syscalls x86 suspects -a exit ,always -S ioperm -S modify_ldt # Appels de syscalls qui doivent être rares et surveillés de près -a exit ,always -S get_kernel_syms -S ptrace -a exit ,always -S prctl # Rajout du monitoring pour la création ou suppression de fichiers # Ces règles peuvent avoir des conséquences importantes sur les # performances du système -a exit ,always -F arch=b64 -S unlink -S rmdir -S rename -a exit ,always -F arch=b64 -S creat -S open -S openat -F exit=-EACCESS -a exit ,always -F arch=b64 -S truncate -S ftruncate -F exit=-EACCESS # Verrouillage de la configuration de auditd -e 2
systemctl restart auditd
Pb
Invalid start date
# LANG=C aureport -ts 12-01-2020 10:58:00 -te 12-01-2020 10:59:00 -e -i Invalid start date (12-01-2020). Month, Day, and Year are required. # aureport -au |head Authentication Report ============================================ # date time acct host term exe success event ============================================ 1. 22/11/20 09:00:09 ftpng 127.0.0.1 /dev/ftpd17909 /usr/sbin/proftpd no 13931 2. 22/11/20 23:27:41 user1 10.1.5.33 ssh /usr/sbin/sshd yes 27355 3. 23/11/20 09:00:31 ftpng 127.0.0.1 /dev/ftpd10919 /usr/sbin/proftpd no 1425 4. 23/11/20 09:03:48 user1 10.1.5.25 ssh /usr/sbin/sshd yes 1723 5. 23/11/20 09:03:52 user1 10.1.5.24 ssh /usr/sbin/sshd yes 1734 # aureport -ts 01/12/20 10:58:00 -te 01/12/20 10:59:00 -e -i
Failed to restart auditd.service: Operation refused, unit auditd.service may be requested by dependency only.
Voir : https://bugzilla.redhat.com/show_bug.cgi?id=1026648
RedHat 7 & 8
# systemctl restart auditd
Failed to restart auditd.service: Operation refused, unit auditd.service may be requested by dependency only.
Solution
service auditd stop systemctl start auditd
Autres
Status
auditctl -s
