[ CATEGORIE ] : Snippet

[ TITLE    ] : Bash - Boucles FOR
[ CATEGORY ] : //
[ DATE     ] :

Memo pour les boucles for et while en bash. Boucles forDans un script bashBoucle limitée : #!/bin/bashfor i in {1..10}do echo "My number is $i"done Boucle limitée : #!/bin/bashfor (( n=1; n<=10; n++ ))do echo "My number is $n"done Boucle infinie : #!/bin/bashfor (( ; ; ))do echo "Hello World!"done Dans un terminalDirectement dans le terminal : # for i in {1..10} ; do echo "Bonjour $i" ; done# for i in {1..3}; do sha

[ TITLE    ] : Manage Container
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Container tasks examplesTo keep in mind:Example for the generate, folder and linger: # man podman-generate-systemd Build a container 1| Use the URL http://classroom.example.com/Containerfile to build the container image with the name “web”| Build it in ~/mycontainer as harry user.| Do not modify the container file. Connect to Harry user and create the /mycontainer directory: $ mkdir ~/mycontainer

[ TITLE    ] : Manage LVM
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Configure LVMTo keep in mind: Création de partition LVM Création de PV (pour chaque partition) Création de VG (Englobant 1 ou plusieurs PV) Création de LV (Faisant partie d’un VG) Formatage du LV dans un système de fichier Création de répertoires pour monter les LV (1 LV = 1 Répertoire) Rendre persistant dans /etc/fstab Les PV:Un simple fdisk pour partitionner, ajouter le type (t) lvm: # fdisk /d

[ TITLE    ] : Manage SELiux
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm SELinux task examplesTo keep in mind. Context: # cat /etc/selinux/config // Edit context - permanent Web site: # vim /etc/httpd/conf/httpd.conf // Change document root if needed# systemctl enable httpd.service --now# systemctl reload httpd.service # man semanage-fcontext# semanage fcontext -a -t httpd_sys_content_t "/myBlog(/.*)?"# restorecon -R -v /myBlog Users di

[ TITLE    ] : Manage Swap
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Swap partition tasks examplesDon’t forget # mkswap /dev/sdb1# swapom /dev/sdb1 And in fstab: UUID=29ee03a0-196a-42cd-986f-4560097c9764 swap swap defaults 0 0UUID=fe0b8dff-238d-4748-8e16-c576c4c0b8be swap swap pri=42 0 0 Create a swap partition 1Create a swap partition of 512MB at /dev/sdb, with a persistent prioity of 20. # free -m # fdisk /dev/sdb/ // g, n, +512M, t, swap, w# partprobe# lsb

[ TITLE    ] : Manage Default Target
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Default target tasks examplesDefault target 1| Set the default target to boot into X Window level (previously level 5). It is simple task configuring systemd properly: # systemctl set-default graphical.target We can also check if it succeeded with: # systemctl get-default Additional comment: Here is the list of all targets in systemd: 0 poweroff.target 1 rescue.target 2 multi-user.targe

[ TITLE    ] : Manage autofs
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Configure autofs task examplesAlways: # dnf install nfs-utils autofs -y # systemctl enable autofs --now# systemctl restart autofs Configure autofs 1| Configure autofs to automount the home directories of netuserX user.| Note theFollowing:| - netuserX home directory is exported via NFS, which is available on classroom.example.com(192.168.1.43)| and your NFS-exports directory is /netdir/netuserX for

[ TITLE    ] : Manage Firewalld
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Manage FirewallMaybe very hard to memorize, so, if needed : # firewall-cmd -h | grep <pattern># firewall-cmd --<TAB> Then ALREADY RELOAD THE CONFIG for APPLY CHANGES: # firewall-cmd --reload Manage Firewall Example 1| Refuse domain 172.25.0.0/16 to access the server. # firewall-cmd --zone=block --add-source=172.25.0.0/16 --permanent# firewall-cmd --reload Manage Firewall Example 2| Rem

[ TITLE    ] : Manage Yum and Repository
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Repository task examplesCreate a repository 1| Add new repositories :| - http://classroom.example.com/rhel8.0/x86_64/dvd/AppStream| - http://classroom.example.com/rhel8.0/x86_64/dvd/BaseOS Do it in console (not remote), if there is no ip or hostname assigned to take remote connectivity. You can do that: # dnf config-manager --add-repo http://classroom.example.com/rhel8.0/x86_64/dvd/AppStream# dnf c

[ TITLE    ] : Manage Script Bash
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Script bash tasks examplesScript bash 1| Create a script file:| - if the paramater is “GM” it outputs “good morning”| - if it is “GN”, it outputs “good night” #!/bin/bash# Vérifie si exactement un argument est fourniif [ $# != 1 ]; then echo "Erreur : Ce script nécessite exactement un argument (GM ou GN)." exit 1fi# Vérifie la valeur de l'argumentif [ "$1" = "GM&quo

[ TITLE    ] : Manage Root Password
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Manage Root PasswordManage Root Password 1SUPPRIMER TOUTES DIRECTIVES console=... puis Ctrl-X. Ajouter init=/bin/bash dans la console de grub On doit obtenir un prompt # en bas d’écran, pensez à taper sur entrée au cas où le terminal soit rempli de messages console.Si l’écran reste noir, vous avez laissé traîner des console=, c’est vrai aussi avec rd.break. # mount -o remount /# /sbin/load_polic

[ TITLE    ] : Manage users groups memberships access ACL
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Users, groups and group memberships tasks examplesCreate users, groups and group memberships 1| Create the following users, groups and group memberships:| - A group named admin.| - A user harry who belongs to admin as a secondary group.| - A user natasha who belongs to admin as a secondary group.| - A user sarah who doesn’t have access to an interactive shell and who’s not a member of admin.| - Th

[ TITLE    ] : Manage Journald
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Manage JournaldConfigure Journald 1| Configure journald to persist between reboots # vim /etc/systemd/journald.conf#Storage=autoStorage=persistent Apply (Seems you need to reboot to seen logs in /var/log/journal): # systemctl restart systemd-journald.service Then verify with journalctl after reboot (1 for 1rst reboot, 2 for second, etc.q): # journalctl -b 1 From man journald.conf: Storage=Cont

[ TITLE    ] : Manage Tuned
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Configure TunedTo keep in mind. If necessary: # yum install tuned -y # systemctl start tuned# systemctl enable tuned To manage tuned, you must use tuned-adm: # tuned-adm <TAB> Configure Tuned 1| Set the recommended tuned profile for your system. # tuned-adm recommend# tuned-adm profile virtual-guest // or whatever profile that it recommends Verify: # tuned-adm active Configure Tuned 2| set

[ TITLE    ] : Manage NTP
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Configure NTPTo keep in mind. If necessary: # yum install chrony -y # systemctl restart chronyd.service# systemctl enable chronyd.service --now # vim /etc/chrony.conf Configure NTP 1| Configure your system so that it is an NTP pool of 2.centos.pool.ntp.org NTP is a service that is using chrony deamon. It should be already installed in the system but it does not cost You to issue: # yum install -y

[ TITLE    ] : Manage Find Grep Tar link
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Manage FindTo keep in mind.Execute a simply find command in order to display the result in the terminal: # find / -user harry If it seems ok, you can use exec <cmd> {} <target> \; after: # find / -user harry -exec cp -rf {} /root/find.user \; Manage Find 1| Find all files owned by harry and copy them to /root/find.user| Find files (not subdirectories) owner by user

[ TITLE    ] : Manage Cron Job
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Cron job tasksTo keep in mind: # systemctl status crond.service# systemctl enable crond.service# systemcdl restart crond.service Fin the full path by using the which command and use it in the crontab: # which <cmd> Exemple: # which echo/usr/bin/echo Files to check: # cat /var/log/cron // it shows list of cronjobs# cat /etc/crontab // it shows how cronjob works Cron job 1| Set a Cron

[ TITLE    ] : Manage networking and hostname
[ CATEGORY ] : //
[ DATE     ] :

TIPS & TRICKSTo search the contents of the man pages # man -k searchterm # man -K searchterm Manage networkingManage networking Example 1| Assign hostname and ip address for your virtual machine.| - Hostname: servera.lab.example.com| - Ip address: 192.168.1.42| - Mask: 255.255.255.0| - Gateway: 192.168.1.1| - NameServer: 192.68.1.200 On console (not remote console) : # hostnamectl set-hostname servera.lab.example.com# hostnamectl Note the interface with the ethernet type: # nmcli connectio

[ TITLE    ] : Fichiers sans propriétaire
[ CATEGORY ] : //
[ DATE     ] :

Si un utilisateur est supprimé du système (userdel) mais que la suppression de son répertoire personnel n’est pas précisée (userdel -r), ses anciens fichiers resteront sur le système et auront comme propriétaire son ancien UID. Si un autre utilisateur est créé avec ce même UID, tous les fichiers de l’utilisateur supprimé appartiendront au nouvel utilisateur et présentera un risque de confidentialité/sécurité. En général, la suppression des comptes d’utilisateur n’est pas utilisée pour éviter ce

[ TITLE    ] : Nom de fichier avec la date courrante
[ CATEGORY ] : //
[ DATE     ] :

Pour créer un fichier avec une date de type 2023-11-29-22-13-37 : # touch /MonDossier/monFichier-$(date +%Y-%m-%d-%H-%M-%S).txt

[ TITLE    ] : Find et depth
[ CATEGORY ] : //
[ DATE     ] :

Rechercher des dossiers dans une arboressence en précisant la profondeur : # find / -maxdepth 12 -type d -name "MonRepertoireImportant"/etc/MonRepertoireImportant/usr/MonRepertoireImportant/exports/volume42/licences/usr/MonRepertoireImportant/exports/volume42/usr/MonRepertoireImportant DocumentationMAN find

[ TITLE    ] : WWN - World Wide Name
[ CATEGORY ] : //
[ DATE     ] :

Le world wide name (WWN) ou world wide identifier (WWID) est un identifiant unique dans un réseau SAN de type Fibre Channel (FC) ou Serial Attached SCSI. ComparaisonPar analogie avec un LAN, un WWN serait équivalent de l’adresse MAC. LAN : adresse MAC pour tous les équipements réseauSAN : identifiant WWN pour tous les périphériques de stockage réseau FormatChaque WWN est un nombre codé sur 8 octets dont les 3 premiers sont attribués par l’IEEE et les autres par le constructeur de l’équipement, H

[ TITLE    ] : Snippet awk
[ CATEGORY ] : //
[ DATE     ] :

Si vous avez un fichier avec des informations qui vous interessent sur plusieurs lignes et que vous souhaitez une sortie sur une seule vous pouvez utiliser la commande awk. Exemple de fichier : [...]HOST: serv01.my.company.org [Linux]---------- Comment: Backup MasterUse : A B C[...]HOST: serv02.my.company.org [Linux]---------- Comment: Hyper MasterUse : A B C D[...]HOST: serv03.my.company.org [Linux]---------- Comment: Super MasterUse : A C[...] Commande awk : awk

[ TITLE    ] : Snippet - Generer des adresses MAC
[ CATEGORY ] : //
[ DATE     ] :

Commandes pour générer des adresses MAC aléatoires : # printf '00-%02X-%02X-%02X-%02X-%02X\n' $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]# printf '00:%02X:%02X:%02X:%02X:%02X\n' $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]# for i in $(seq 1 10) ; do printf '00:%02X:%02X:%02X:%02X:%02X\n' $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] ; done Remerciements Quentin E. Merc

[ TITLE    ] : Snippet Configuration clés SSH
[ CATEGORY ] : //
[ DATE     ] :

SSH peut permettre une connexion sans mot de passe en utilisant l’authentification par clé privée/publique. Résumé des commandesAvec l’emplacement par défaut des clés : $ ssh-keygen // Génération des clés$ ssh-copy-id user@remotehost // Partage de la clé publique$ ssh user@remotehost // Connexion au système distant Avec un autre emplacement des clés : $ ssh-keygen -f .ssh/key2 // Génération des clés$ ssh-copy-id -i .ssh/key2.pub user@remotehost // Partage de la clé pu

[ TITLE    ] : Lister les types de lien - Soft & Hard
[ CATEGORY ] : //
[ DATE     ] :

Pour lister tous les liens en dur, la commande awk permet de lister les mêmes inodes en récupérant le champs %i de stat : stat -c '%i %n' * | awk 'Doublon[$1]++' | cut -d ' ' -f 2- En inversant la commande, uniquement tous les liens symboliques peuvent être listés, (mais ainsi que les répertoires et les fichiers, qui ont leur unique inode): stat -c '%i %n' * | awk '!Doublon[$1]++' | cut -d ' ' -f 2- Résumé : HardLink SoftLink Ac

[ TITLE    ] : NetApp - Accès aux logs
[ CATEGORY ] : //
[ DATE     ] :

Pour savoir de façon plus poussé où se trouvent les logs de NetApp. Dans : <@IP>/spi <@IP>/spi/mlog

[ TITLE    ] : Machine injoignable
[ CATEGORY ] : ///
[ DATE     ] :

Commandes de base pour diagnostiquer un problème réseau en effectuant les tests préliminaires : # ssh <nomhôte ou adresseIP># ping <nomhôte ou adresseIP># tracert <nomhôte ou adresseIP># dig <nomhôte ou adresseIP> La commande dig envoie l‘@IP du serveur, pinger le serveur pour vérifier.

[ TITLE    ] : Bang ! Bang !
[ CATEGORY ] : //
[ DATE     ] :

La commande bang bang ou !! permet d’exécuter la dernière commande tapée dans le terminal. Il est également possible de préciser un nombre !n ou n correspond à la ligne dans l’historique (voir commande history) Pour lancer la dernière commande : # !! Pour lancer la commande n°42 (voir son historique): # !42 Remerciements midorino3142 Merci à midorino3142 pour ce TIL !

[ TITLE    ] : Vim - Remplacement
[ CATEGORY ] : //
[ DATE     ] :

Pour remplacer plusieurs mots (ou bouts de mots) sous Vim, on utilise g, s et %s : Toutes les occurences : :%s/texte/Nouveau/g Une seule (la 1ère trouvée) : :s/texte/Nouveau/g Exemple : changer le mot corbeau en corbeille sans toucher aux autres mots (comme beau) :g/corbeau/s/beau/beille/g Exemple : changer les espaces en tab ou inversement (mettre le bon nombre d’espaces) :%s/ /\t/g:%s/\t/ /g Et si vous avez fait un gros mistake, utiliser :u autant de fois que nécessaire.

[ TITLE    ] : Supprimer les processus d'un user
[ CATEGORY ] : //
[ DATE     ] :

Commande pour supprimer tous les processus d’un utilisateur en particulier : # ps aux | grep "^usename" | awk '{print $2}' | xargs kill -9  Détails : ps aux : liste tous les processus grep "^usename" : liste uniquement les lignes commençant par username awk '{print $2}' : Récupère la 2ème colonne (où se trouve le PID des processus) xargs kill -9 : Met les PID sous forme de ligne (avant en colonne) et exécute un kill

[ TITLE    ] : Find et rm
[ CATEGORY ] : //
[ DATE     ] :

Si vous voulez changer les droits et supprimer tous les dossiers du répertoire /John qui commencent par “test” et finissent par “.bdr” : # find /home/John/ -type d -name "test*.bdr" -exec sh -c 'chmod u+w {}/* ; rm -f {}/*' \; VérificationEn cas de doute, vous pouvez simplement lancer le début de la commande, find listera tous les fichiers qui seront modifiés et supprimés avec chmod et rm -f: # find /home/John/ -type d -name "test*.bdr" Décompo