{"status":"success","message":"Questions list retrieved successfully with pagination.","data":{"metadata":{"total":38,"limit":10,"offset":0,"returned":10},"questions":[{"id":39,"question":"crontab ?","reponse":"GUIDE TECHNIQUE : CRONTAB ET AUTOMATISATION SOUS LINUX\r\n1. D\u00c9FINITION ET PRINCIPE\r\ncron est un service d'arri\u00e8re-plan (daemon) sous Linux\/UNIX qui s'ex\u00e9cute en continu et v\u00e9rifie chaque minute si des t\u00e2ches doivent \u00eatre lanc\u00e9es.\r\ncrontab (cron table) est l'utilitaire en ligne de commande et le fichier de configuration qui contient la liste des instructions planifi\u00e9es pour un utilisateur donn\u00e9.\r\n2. SYNTAXE DES CHAMPS TEMPORELS\r\nUne entr\u00e9e crontab classique se compose de 5 champs temporels suivis de la commande \u00e0 ex\u00e9cuter :\r\n* * * * * commande_a_executer\r\n\u2502 \u2502 \u2502 \u2502 \u2502\r\n\u2502 \u2502 \u2502 \u2502 \u2514\u2500\u2500\u2500 Jour de la semaine (0 - 6) (0 = Dimanche)\r\n\u2502 \u2502 \u2502 \u2500\u2500\u2500\u2500\u2500\u2500 Mois (1 - 12)\r\n\u2502 \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Jour du mois (1 - 31)\r\n\u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Heure (0 - 23)\r\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Minute (0 - 59)\r\n\r\n\r\nCaract\u00e8res sp\u00e9ciaux autoris\u00e9s :\r\n* : Toutes les valeurs possibles.\r\n, : S\u00e9parateur de valeurs (ex: 1,15,30 pour les minutes 1, 15 et 30).\r\n- : Plage de valeurs (ex: 1-5 pour du lundi au vendredi dans le champ jour de semaine).\r\n\/* : Intervalle r\u00e9gulier (ex: *\/15 dans les minutes = toutes les 15 minutes).\r\n3. EXEMPLE PRATIQUE : SAUVEGARDE CHAQUE JOUR \u00c0 22H00\r\nSc\u00e9nario :\r\nSauvegarder une base de donn\u00e9es \/ table de donn\u00e9es vers une unit\u00e9 de stockage (type RDX\/Disque) \u00e0 22h00 pr\u00e9cises, chaque jour.\r\n\u00c9tape 1 : Expression temporelle pour 22h00\r\nMinute : 0\r\nHeure : 22 (format 24 heures)\r\nJour du mois : * (tous les jours)\r\nMois : * (tous les mois)\r\nJour de la semaine : * (tous les jours)\r\nSyntaxe retenue : 0 22 * * *\r\n\u00c9tape 2 : Cr\u00e9ation du script de sauvegarde (\/usr\/local\/bin\/backup_rdx.sh)\r\nIl est fortement recommand\u00e9 de passer par un script .sh plut\u00f4t que d'\u00e9crire de longues commandes directement dans la crontab.\r\n#!\/bin\/bash\r\n\r\n# Configuration des variables\r\nDATE=$(date +%Y%m%d_%H%M%S)\r\nBACKUP_DIR=\"\/mnt\/rdx\/backups\"       # Point de montage RDX\r\nLOG_FILE=\"\/var\/log\/backup_rdx.log\"   # Fichier de journalisation\r\n\r\n# Cr\u00e9er le r\u00e9pertoire s'il n'existe pas\r\nmkdir -p \"$BACKUP_DIR\"\r\n\r\necho \"=== D\u00e9but de la sauvegarde RDX : $(date) ===\" >> \"$LOG_FILE\"\r\n\r\n# Exemple 1 : Sauvegarde d'une table PostgreSQL \/ MySQL vers RDX\r\n# mysqldump -u root -p'mot_de_passe' ma_base ma_table > \"$BACKUP_DIR\/table_backup_$DATE.sql\"\r\n\r\n# Exemple 2 : Copie de fichiers de donn\u00e9es vers RDX avec rsync\r\nrsync -avz \/var\/lib\/data\/ \"$BACKUP_DIR\/data_$DATE\/\" >> \"$LOG_FILE\" 2>&1\r\n\r\nif [ $? -eq 0 ]; then\r\n    echo \"Sauvegarde r\u00e9ussie le $DATE\" >> \"$LOG_FILE\"\r\nelse\r\n    echo \"ERREUR lors de la sauvegarde le $DATE\" >> \"$LOG_FILE\"\r\nfi\r\n\r\necho \"=== Fin de la sauvegarde ===\" >> \"$LOG_FILE\"\r\n\r\n\r\nRendre le script ex\u00e9cutable :\r\nsudo chmod +x \/usr\/local\/bin\/backup_rdx.sh\r\n\r\n\r\n\u00c9tape 3 : Ajout dans la Crontab\r\nPour \u00e9diter la table des t\u00e2ches de l'utilisateur actuel (ou root si la sauvegarde exige des privil\u00e8ges \u00e9lev\u00e9s) :\r\nsudo crontab -e\r\n\r\n\r\nAjoutez la ligne suivante \u00e0 la fin du fichier :\r\n0 22 * * * \/usr\/local\/bin\/backup_rdx.sh >> \/var\/log\/backup_cron.log 2>&1\r\n\r\n\r\nExplication du redirigeur >> \/var\/log\/backup_cron.log 2>&1 :\r\n>> : Redirige la sortie standard (logs) \u00e0 la fin du fichier sans l'\u00e9craser.\r\n2>&1 : Redirige \u00e9galement les erreurs (sortie 2) vers le m\u00eame fichier journal.\r\n4. COMMANDES DE GESTION CRONTAB\r\ncrontab -l : Lister les t\u00e2ches configur\u00e9es pour l'utilisateur courant.\r\ncrontab -e : \u00c9diter le fichier crontab interactif.\r\ncrontab -r : Supprimer toutes les t\u00e2ches planifi\u00e9es de l'utilisateur.\r\nsudo crontab -l -u root : Afficher la crontab de l'utilisateur root.\r\n5. BONNES PRATIQUES SOUS RHEL \/ LINUX\r\nVariables d'environnement dans Cron : cron s'ex\u00e9cute dans un environnement shell restreint. Indiquez toujours les chemins absolus pour les commandes (ex: \/usr\/bin\/rsync au lieu de rsync).\r\nRedirection des sorties : Par d\u00e9faut, cron tente d'envoyer un e-mail local si une t\u00e2che g\u00e9n\u00e8re du texte. Redirigez toujours la sortie vers un fichier log.\r\nTester avant d'automatiser : Ex\u00e9cutez toujours votre script manuellement dans un terminal avant d'activer la ligne dans la crontab.","auteur":"GUIDE TECHNIQUE : CRONTAB ET AUTOMATISATION SOUS LINUX 1. D\u00c9FINITION ET PRINCIPE cron est un service","created_at":"2026-09-24 22:08:07"},{"id":38,"question":"BIOS Legacy vs UEFI ?","reponse":"DOCUMENT TECHNIQUE : BIOS LEGACY vs UEFI1. VUE D'ENSEMBLE ET DEFINITIONSBIOS Legacy (Basic Input\/Output System)Origine : Con\u00e7u dans les ann\u00e9es 1970 pour les PC IBM.Fonctionnement : Firmware 16 bits ex\u00e9cut\u00e9 en mode r\u00e9el (Real Mode). Il initialise le mat\u00e9riel basique, effectue le POST (Power-On Self-Test) et lit le premier secteur du disque d'amor\u00e7age.Statut actuel : Obsol\u00e8te. Abandonn\u00e9 par les fabricants de processeurs (Intel, AMD) et de serveurs (Dell, HPE, Lenovo) sur les plateformes r\u00e9centes.UEFI (Unified Extensible Firmware Interface)Origine : D\u00e9velopp\u00e9 initialement par Intel (projet EFI), puis maintenu par le Forum UEFI.Fonctionnement : Interface moderne fonctionnant en mode 32 bits ou 64 bits. Il peut ex\u00e9cuter ses propres modules (pilotes r\u00e9seau, interfaces graphiques, outils de diagnostic) sans charger l'OS.Statut actuel : Standard de l'industrie pour tous les ordinateurs x86_64, ARM64 et serveurs modernes.2. TABLEAU COMPARATIF SYNTH\u00c9TIQUECaract\u00e9ristiqueBIOS LegacyUEFIArchitecture processeur16 bits (Real Mode)32 bits ou 64 bitsTable de partitionnementMBR (Master Boot Record)GPT (GUID Partition Table)Taille maximale de disque2,2 To9,4 Zo (Zettabytes)Nombre max. de partitions4 partitions primaires128 partitions (par d\u00e9faut)Lieu du BootloaderSecteur MBR (Secteur 0 du disque)Fichier .efi sur partition ESP (FAT32)Emplacement Linux (GRUB2)\/boot\/grub2\/i386-pc\/\/boot\/efi\/EFI\/<distro>\/S\u00e9curit\u00e9 (Secure Boot)Non disponiblePris en charge (Signatures num\u00e9riques)Interface utilisateurMode texte basique (Clavier uniquement)Graphique (Souris, \u00e9cran tactile, r\u00e9seau)Boot R\u00e9seau (PXE)Lent, fonctionnalit\u00e9s basiquesRapide, support HTTP\/HTTPS, IPv63. PROCESSUS DE D\u00c9MARRAGE (BOOT SEQUENCE)S\u00e9quence de d\u00e9marrage BIOS LegacyPOST (Power-On Self-Test) : Le firmware teste les composants mat\u00e9riels fondamentaux (RAM, CPU, GPU).Lecture MBR : Le BIOS cherche le disque de d\u00e9marrage prioritaire et lit les 512 premiers octets (le MBR).Passage de relais : Le code binaire du MBR charge l'\u00e9tape suivante du gestionnaire d'amor\u00e7age (GRUB Stage 1 puis Stage 2).Chargement du Noyau : GRUB bascule le CPU du mode 16 bits vers le mode 32\/64 bits, puis charge vmlinuz et initramfs en m\u00e9moire vive.S\u00e9quence de d\u00e9marrage UEFIInitialisation UEFI : Le firmware initialise le mat\u00e9riel en mode 64 bits natif (initialisation parall\u00e9lis\u00e9e plus rapide).Lecture de la NVRAM : L'UEFI lit la m\u00e9moire NVRAM de la carte m\u00e8re pour conna\u00eetre l'ordre d'amor\u00e7age et le chemin de l'ex\u00e9cutable EFI.Chargement de la partition ESP : Le firmware acc\u00e8de directement \u00e0 la partition syst\u00e8me EFI (format\u00e9e en FAT32) et ex\u00e9cute le fichier d'amor\u00e7age (ex: \/EFI\/redhat\/grubx64.efi).Ex\u00e9cution de GRUB & Noyau : L'ex\u00e9cutable EFI charge le noyau vmlinuz directement, sans \u00e9tape interm\u00e9diaire de basculement de mode processeur.4. COMPARAISON MBR vs GPTMBR (Master Boot Record)Adressage : Adressage 32 bits des secteurs logic (LBA).Capacit\u00e9 maximale :\r\n$$2^{32} \\text{ secteurs} \\times 512 \\text{ octets\/secteur} = 2\\,199\\,023\\,255\\,552 \\text{ octets} \\approx 2,2 \\text{ To}$$Tol\u00e9rance aux pannes : Aucune. La table de partition est stock\u00e9e \u00e0 un seul endroit (le premier secteur). Si ce secteur est endommag\u00e9, l'ensemble du disque est illisible.GPT (GUID Partition Table)Adressage : Adressage 64 bits des secteurs.Capacit\u00e9 maximale :\r\n$$2^{64} \\text{ secteurs} \\times 512 \\text{ octets\/secteur} \\approx 9,4 \\text{ Zettabytes}$$Tol\u00e9rance aux pannes : \u00c9lev\u00e9e. GPT conserve une copie de sauvegarde de la table de partition \u00e0 la toute fin du disque (Backup GPT Header). Il int\u00e8gre \u00e9galement un contr\u00f4le de redondance cyclique (CRC32) pour d\u00e9tecter les corruptions de donn\u00e9es.Compatibilit\u00e9 : Inclut un Protective MBR au secteur 0 pour emp\u00eacher les anciens utilitaires BIOS d'\u00e9craser le disque.5. FONCTIONNALIT\u00c9S CL\u00c9S ET S\u00c9CURIT\u00c9 EN UEFISecure Boot :\r\nEmp\u00eache l'ex\u00e9cution de logiciels malveillants ou de bootkits au d\u00e9marrage. Avant de charger un fichier .efi ou un noyau Linux, l'UEFI v\u00e9rifie sa signature num\u00e9rique \u00e0 l'aide de cl\u00e9s cryptographiques stock\u00e9es dans la carte m\u00e8re (PK, KEK, DB).Variables NVRAM :\r\nLes param\u00e8tres de d\u00e9marrage sont modifiables directement depuis le syst\u00e8me d'exploitation via l'interface \/sys\/firmware\/efi\/efivars\/ (utilitaire efibootmgr sous Linux).Support R\u00e9seau Int\u00e9gr\u00e9 :\r\nL'UEFI contient une pile r\u00e9seau IPv4\/IPv6 native, permettant le d\u00e9marrage \u00e0 distance via PXE, iSCSI ou t\u00e9l\u00e9chargement direct d'image ISO via HTTPS.6. SP\u00c9CIFICIT\u00c9S SOUS LINUX \/ RHELStructure du r\u00e9pertoire \/boot selon le modeEn BIOS Legacy :Dossier des modules GRUB : \/boot\/grub2\/i386-pc\/Configuration principale : \/boot\/grub2\/grub.cfgEn UEFI :Partition ESP mont\u00e9e sur : \/boot\/efiFichiers EFI : \/boot\/efi\/EFI\/redhat\/grubx64.efi et shimx64.efiNote RHEL 9\/10 : La configuration principale reste centralis\u00e9e dans \/boot\/grub2\/grub.cfg, avec un lien ou stub dans \/boot\/efi.Commandes utiles de diagnosticIdentifier le mode de d\u00e9marrage actuel :[ -d \/sys\/firmware\/efi ] && echo \"Mode UEFI\" || echo \"Mode BIOS\/Legacy\"\r\nLister les entr\u00e9es d'amor\u00e7age NVRAM (UEFI uniquement) :sudo efibootmgr -v\r\nV\u00e9rifier le type de table de partition du disque (MBR\/dos ou GPT) :sudo lsblk -o NAME,SIZE,FSTYPE,PTTYPE","auteur":"AhnizTech","created_at":"2026-09-24 21:05:30"},{"id":37,"question":"bucket S3 (Amazon Simple Storage Service) ?","reponse":"Un bucket S3 (Amazon Simple Storage Service), c'est tout simplement un espace de stockage cloud s\u00e9curis\u00e9 sur AWS (un dossier g\u00e9ant dans le nuage) o\u00f9 tu peux stocker et organiser n'importe quel type de fichier (images, sauvegardes, scripts, disques virtuels, etc.).\r\n\r\nDans le cas de l'export de ta machine virtuelle RHEL 10, AWS t'oblige \u00e0 d\u00e9poser l'image de ton disque (le fichier .vmdk) dans un bucket S3 avant de pouvoir le t\u00e9l\u00e9charger sur ton PC. C'est l'interm\u00e9diaire obligatoire pour faire sortir ton disque virtuel d'AWS.","auteur":"Hanifi Khelaf","created_at":"2026-09-20 13:36:40"},{"id":36,"question":"JSON et JSONB in SQL relationnel??","reponse":"stocker des donn\u00e9es au format JSON dans une base de donn\u00e9es relationnelle (comme PostgreSQL), \u00e7a sert \u00e0 garder des structures flexibles (comme des objets avec des sous-cl\u00e9s : calculs, employee, company, etc.) dans une seule case de tableau, au lieu de cr\u00e9er 50 colonnes diff\u00e9rentes.   Voici la diff\u00e9rence entre les deux types :json (format texte) : Il stocke le texte JSON exactement tel que tu l'\u00e9cris. L'inconv\u00e9nient, c'est que chaque fois que tu fais une recherche dedans, la base de donn\u00e9es est oblig\u00e9e de relire et de re-analyser tout le texte caract\u00e8re par caract\u00e8re, ce qui est lent.jsonb (format binaire - celui de ton image) : Il d\u00e9compose le JSON et le stocke sous une forme binaire optimis\u00e9e.Pourquoi c'est mieux ? C'est beaucoup plus rapide pour faire des requ\u00eates et chercher des infos pr\u00e9cises \u00e0 l'int\u00e9rieur (par exemple, r\u00e9cup\u00e9rer tous les employ\u00e9s dont le matricule est MAT-001).   Il enl\u00e8ve aussi les espaces superflus et permet de cr\u00e9er des index pour acc\u00e9l\u00e9rer les recherches.Sur ton image, c'est du jsonb, ce qui est le choix id\u00e9al pour stocker des donn\u00e9es complexes et changeantes (comme des fiches de paie avec des calculs, des infos d'employ\u00e9s et d'entreprises) tout en gardant de bonnes performances.","auteur":"AhnizTech","created_at":"2026-09-20 11:37:59"},{"id":35,"question":"$ sudo lsof -i -P -n | grep LISTEN","reponse":"================================================================================\r\n  ANALYSE D\u00c9TAILL\u00c9E DE LA COMMANDE LSOF ET DES PORTS EN \u00c9COUTE\r\n  Machine : Khelaf-Hanifi-MyRHEL10-VM-AWS\r\n================================================================================\r\n\r\n--------------------------------------------------------------------------------\r\n1. EXPLICATION DE LA COMMANDE ET DE SES OPTIONS\r\n--------------------------------------------------------------------------------\r\nCommande ex\u00e9cut\u00e9e : $ sudo lsof -i -P -n | grep LISTEN\r\n\r\n- lsof    : \"List Open Files\" (Lister les fichiers ouverts). Sous Linux, tout est\r\n            fichier, y compris les sockets r\u00e9seau.\r\n- -i      : Filtre pour afficher uniquement les sockets Internet (IPv4\/IPv6).\r\n- -P      : Affiche les num\u00e9ros de ports BRUTS (ex: 80, 9090, 3000) sans les \r\n            traduire en noms de services (http, websm, etc.).\r\n- -n      : D\u00e9sactive la r\u00e9solution DNS inverse (affiche les IP r\u00e9elles comme \r\n            127.0.0.1 au lieu de 'localhost'). Acc\u00e9l\u00e8re consid\u00e9rablement l'ex\u00e9cution.\r\n- | grep LISTEN : Filtre le r\u00e9sultat pour n'afficher QUE les ports en attente de\r\n                  connexions entrantes (\u00e9tat LISTEN).\r\n\r\n--------------------------------------------------------------------------------\r\n2. SIGNIFICATION DES COLONNES DE LA SORTIE\r\n--------------------------------------------------------------------------------\r\n- COMMAND  : Nom de l'application ou du processus qui g\u00e8re le port.\r\n- PID      : Process ID (num\u00e9ro unique d'identification du processus).\r\n- USER     : Compte utilisateur Linux propri\u00e9taire du processus running.\r\n- FD       : File Descriptor (ex: 4u = descripteur 4 ouvert en lecture\/\u00e9criture).\r\n- TYPE     : Famille d'adresse IP (IPv4 ou IPv6).\r\n- DEVICE   : Num\u00e9ro de p\u00e9riph\u00e9rique interne attribu\u00e9 par le noyau Linux.\r\n- SIZE\/OFF : Encombrement m\u00e9moire \/ Offset (toujours 0t0 pour les sockets r\u00e9seau).\r\n- NODE     : Num\u00e9ro d'inode attribu\u00e9 au socket par le syst\u00e8me de fichiers virtuels.\r\n- NAME     : Adresse IP d'\u00e9coute, num\u00e9ro de port et \u00e9tat (ex: TCP *:80 (LISTEN)).\r\n\r\n--------------------------------------------------------------------------------\r\n3. INVENTAIRE D\u00c9TAILL\u00c9 DE VOS PROCESSUS ACTIFS (DEPUIS VOTRE CAPTURE)\r\n--------------------------------------------------------------------------------\r\nA. Cockpit & Systemd (Gestion Web du serveur) :\r\n   - systemd (PID 1, root) & cockpit-t (PID 98415, cockpit-systemd-service)\r\n   - Port : TCP *:9090 (IPv6 \/ IPv4)\r\n   - Analyse : Socket activ\u00e9 par systemd. cockpittls g\u00e8re le chiffrement HTTPS.\r\n\r\nB. Serveur Web Apache (httpd) :\r\n   - httpd (PID 823 [root], PIDs 888, 889, 930, 6088 [apache])\r\n   - Port : TCP *:80 (IPv6 \/ dual-stack)\r\n   - Analyse : Master process root + 4 worker processes sous le compte 'apache'.\r\n\r\nC. Service SSH (Acc\u00e8s distant s\u00e9curis\u00e9) :\r\n   - sshd (PID 1401, root)\r\n   - Port : TCP *:22 (IPv4 et IPv6)\r\n   - Analyse : \u00c9coute globale active pour les connexions terminal distantes.\r\n\r\nD. Base de Donn\u00e9es PostgreSQL :\r\n   - postgres (PID 1413, postgres)\r\n   - Port : TCP 127.0.0.1:5432 (IPv4) et [::1]:5432 (IPv6)\r\n   - Analyse : Isolation locale stricte. Aucune connexion externe permise.\r\n\r\nE. Application Node.js :\r\n   - node (PID 155382, ec2-user)\r\n   - Port : TCP *:3000 (IPv4)\r\n   - Analyse : Application web backend \u00e0 l'\u00e9coute sur toutes les interfaces.\r\n\r\nF. VS Code Remote Server (Sessions d'\u00e9dition) :\r\n   - code-645f (PIDs 1852, 126989, 127197, ec2-user)\r\n   - Ports : TCP 127.0.0.1:34163, 38683, 37365\r\n   - Analyse : Tunnels internes pour votre environnement de d\u00e9veloppement IDE.\r\n\r\n================================================================================\r\nFin du document technique d'analyse.\r\n================================================================================","auteur":"Hanifi Khelaf","created_at":"2026-09-14 22:24:36"},{"id":34,"question":"ports ?","reponse":"1. Ports en \u00e9coute sur le syst\u00e8me (Processus \/ Services actifs)sudo ss -tulpn : Affiche tous les ports TCP (-t) et UDP (-u) en \u00e9coute (-l), sous forme num\u00e9rique (-n), avec le processus\/PID associ\u00e9 (-p).V\u00e9rification : Tu verras la liste des ports actifs dans la colonne Local Address:Port (ex: :22 pour SSH ou :9090 pour Cockpit).sudo lsof -i -P -n | grep LISTEN : Liste tous les processus syst\u00e8me qui \u00e9coutent actuellement sur le r\u00e9seau.V\u00e9rification : Affiche clairement le nom du binaire\/service qui d\u00e9tient chaque port.2. Ports autoris\u00e9s par le pare-feu (Filtrage R\u00e9seau)sudo firewall-cmd --list-ports : Affiche uniquement les ports tcp\/udp ouverts directement dans la zone active.V\u00e9rification : Renvoie la liste des num\u00e9ros de ports autoris\u00e9s (ex: 9090\/tcp).sudo firewall-cmd --list-all : Affiche la configuration compl\u00e8te du pare-feu, incluant les services, les ports et les r\u00e8gles de restriction par IP (rich rules).  V\u00e9rification : Permet de valider quels acc\u00e8s r\u00e9seau traversent le pare-feu du serveur.","auteur":"AhnizTech","created_at":"2026-09-14 21:48:52"},{"id":33,"question":"systemctl ?","reponse":"================================================================================\r\n          RHEL 10 SYSTEM ADMINISTRATION & SYSTEMCTL REFERENCE GUIDE\r\n          Guide de R\u00e9f\u00e9rence Systemd & Administration Syst\u00e8me RHEL 10\r\n================================================================================\r\n\r\n--------------------------------------------------------------------------------\r\n1. INTRODUCTION & SCOPE \/ INTRODUCTION ET PORT\u00c9E\r\n--------------------------------------------------------------------------------\r\n[EN] This reference guide compiles essential Linux administration commands for RHEL 10 \r\nenvironments, focusing on service lifecycle management, boot configuration, \r\nsystem monitoring, and troubleshooting best practices. Designed for senior \r\nfull-stack engineers managing production instances.\r\n\r\n[FR] Ce guide de r\u00e9f\u00e9rence rassemble les commandes essentielles d'administration \r\nLinux pour les environnements RHEL 10, en se concentrant sur la gestion du cycle \r\nde vie des services, la configuration au d\u00e9marrage, la surveillance syst\u00e8me et \r\nles bonnes pratiques de d\u00e9pannage. Con\u00e7u pour les ing\u00e9nieurs full-stack seniors \r\ng\u00e9rant des instances de production.\r\n\r\n--------------------------------------------------------------------------------\r\n2. SERVICE MANAGEMENT \/ GESTION DES SERVICES\r\n--------------------------------------------------------------------------------\r\n[EN] Controlling the active state of system services.\r\n[FR] Contr\u00f4le de l'\u00e9tat actif des services syst\u00e8me.\r\n\r\n- Start a service \/ D\u00e9marrer un service :\r\n  $ sudo systemctl start <service_name>\r\n  [EN] Launches the service immediately in the background.\r\n  [FR] Lance le service imm\u00e9diatement en arri\u00e8re-plan.\r\n\r\n- Stop a service \/ Arr\u00eater un service :\r\n  $ sudo systemctl stop <service_name>\r\n  [EN] Terminates the running service process.\r\n  [FR] Termine le processus du service en cours d'ex\u00e9cution.\r\n\r\n- Restart a service \/ Red\u00e9marrer un service :\r\n  $ sudo systemctl restart <service_name>\r\n  [EN] Performs a complete stop followed by a start cycle.\r\n  [FR] Effectue un cycle complet d'arr\u00eat suivi d'un d\u00e9marrage.\r\n\r\n- Reload configuration \/ Recharger la configuration :\r\n  $ sudo systemctl reload <service_name>\r\n  [EN] Applies configuration updates without dropping active connections.\r\n  [FR] Applique les modifications de configuration sans couper les connexions actives.\r\n\r\n--------------------------------------------------------------------------------\r\n3. BOOT & PERSISTENCE \/ D\u00c9MARRAGE ET PERSISTANCE\r\n--------------------------------------------------------------------------------\r\n[EN] Managing automated startup behaviors during system boot.\r\n[FR] Gestion des comportements de d\u00e9marrage automatis\u00e9s au boot du syst\u00e8me.\r\n\r\n- Enable automated startup \/ Activer le lancement automatique :\r\n  $ sudo systemctl enable <service_name>\r\n  [EN] Creates symbolic links to start the service on every boot.\r\n  [FR] Cr\u00e9e des liens symboliques pour lancer le service \u00e0 chaque d\u00e9marrage.\r\n\r\n- Disable automated startup \/ D\u00e9sactiver le lancement automatique :\r\n  $ sudo systemctl disable <service_name>\r\n  [EN] Prevents the service from starting automatically at boot.\r\n  [FR] Emp\u00eache le service de d\u00e9marrer automatiquement au boot.\r\n\r\n--------------------------------------------------------------------------------\r\n4. STATUS & MONITORING \/ \u00c9TAT ET SURVEILLANCE\r\n--------------------------------------------------------------------------------\r\n[EN] Inspecting operational health and runtime states.\r\n[FR] Inspection de la sant\u00e9 op\u00e9rationnelle et des \u00e9tats d'ex\u00e9cution.\r\n\r\n- Detailed status \/ \u00c9tat d\u00e9taill\u00e9 :\r\n  $ sudo systemctl status <service_name>\r\n  [EN] Displays active state, recent log entries, PIDs, and resource usage.\r\n  [FR] Affiche l'\u00e9tat actif, les entr\u00e9es de journal r\u00e9centes, les PID et l'utilisation des ressources.\r\n\r\n- Quick active check \/ V\u00e9rification active rapide :\r\n  $ systemctl is-active <service_name>\r\n  [EN] Returns 'active' or 'inactive' string output.\r\n  [FR] Renvoie une cha\u00eene de caract\u00e8res 'active' ou 'inactive'.\r\n\r\n--------------------------------------------------------------------------------\r\n5. MAINTENANCE & TROUBLESHOOTING \/ MAINTENANCE ET D\u00c9PANNAGE\r\n--------------------------------------------------------------------------------\r\n[EN] Resolving transient errors and reloading daemon rules.\r\n[FR] R\u00e9solution des erreurs transitoires et rechargement des r\u00e8gles du d\u00e9mon.\r\n\r\n- Reset failed service states \/ R\u00e9initialiser les \u00e9tats d'erreur :\r\n  $ sudo systemctl reset-failed\r\n  [EN] Cleans up residual error flags and resets failure counters across systemd.\r\n  [FR] Nettoie les indicateurs d'erreur r\u00e9siduels et r\u00e9initialise les compteurs d'\u00e9chec dans systemd.\r\n\r\n- Reload systemd daemon \/ Recharger le d\u00e9mon systemd :\r\n  $ sudo systemctl daemon-reload\r\n  [EN] Mandatory after creating or modifying custom service files in \/etc\/systemd\/system\/.\r\n  [FR] Obligatoire apr\u00e8s avoir cr\u00e9\u00e9 ou modifi\u00e9 des fichiers de service personnalis\u00e9s dans \/etc\/systemd\/system\/.\r\n\r\n--------------------------------------------------------------------------------\r\n6. SYSTEM LIFECYCLE \/ CYCLE DE VIE DU SYST\u00c8ME\r\n--------------------------------------------------------------------------------\r\n[EN] Global infrastructure actions.\r\n[FR] Actions globales sur l'infrastructure.\r\n\r\n- Reboot server \/ Red\u00e9marrer le serveur :\r\n  $ sudo systemctl reboot\r\n  [EN] Initiates a clean system restart sequence.\r\n  [FR] Lance une s\u00e9quence de red\u00e9marrage propre du syst\u00e8me.\r\n\r\n- Power off server \/ \u00c9teindre le serveur :\r\n  $ sudo systemctl poweroff\r\n  [EN] Shuts down the virtual machine or physical host safely.\r\n  [FR] Arr\u00eate la machine virtuelle ou l'h\u00f4te physique en toute s\u00e9curit\u00e9.\r\n\r\n================================================================================\r\nEnd of Reference Guide \/ Fin du Guide de R\u00e9f\u00e9rence\r\n================================================================================","auteur":"Hanifi Khelaf","created_at":"2026-09-14 21:13:23"},{"id":32,"question":"sudo systemctl reset-failed ?","reponse":"Cette commande se contente de r\u00e9initialiser les compteurs d'erreurs des services dans systemd. Elle nettoie l'historique des statuts (pour faire passer les services de l'\u00e9tat \"\u00e9chec\" \u00e0 un \u00e9tat neutre), mais elle ne modifie, n'arr\u00eate et ne supprime aucun fichier ni configuration de ton syst\u00e8me.\r\n\r\nV\u00e9rification : Tes applications, tes configurations et tes services en cours d'ex\u00e9cution continueront de tourner exactement de la m\u00eame mani\u00e8re, l'affichage des erreurs dans Cockpit sera simplement remis \u00e0 z\u00e9ro.","auteur":"Hanifi Khelaf","created_at":"2026-09-14 21:05:33"},{"id":31,"question":"list commands linux","reponse":"[ec2-user@Khelaf-Hanifi-MyRHEL10-VM-AWS ~]$ history\r\n    1  df -h\r\n    2  sudo dnf update -y\r\n    3  sudo fallocate -l 2G \/swapfile\r\n    4  sudo chmod 600 \/swapfile\r\n    5  sudo mkswap \/swapfile\r\n    6  sudo swapon \/swapfile\r\n    7  echo '\/swapfile swap swap defaults 0 0' | sudo tee -a \/etc\/fstab\r\n    8  free -h\r\n    9  sudo dnf install cockpit -y\r\n   10  sudo systemctl enable --now cockpit.socket\r\n   11  sudo passwd ec2-user\r\n   12  sudo systemctl enable --now cockpit.socket\r\n   13  sudo firewall-cmd --add-service=cockpit --permanent\r\n   14  sudo systemctl disable --now kdump\r\n   15  sudo firewall-cmd --permanent --add-service=cockpit\r\n   16  history\r\n   17  hostnamectl\r\n   18  sudo hostnamectl set-hostname Khelaf-Hanifi-MyRHEL10-VM-AWS\r\n   19  exec bash\r\n   20  sudo insights-client \r\n   21  ip -a\r\n   22  ip a\r\n   23  ls -l\r\n   24  df h\r\n   25  df -h\r\n   26  hostnamectl\r\n   27  mkdir -p ~\/Documents\/projets-web-app\r\n   28  cd ~\/Documents\/projets-web-app && pwd\r\n   29  sudo dnf install -y nodejs npm\r\n   30  node -v\r\n   31  npm -v\r\n   32  sudo npm install -g pm2\r\n   33  pm2 -v\r\n   34  pm2 startup systemd\r\n   35  sudo env PATH=$PATH:\/usr\/bin \/usr\/local\/lib\/node_modules\/pm2\/bin\/pm2 startup systemd -u ec2-user --hp \/home\/ec2-user\r\n   36  pm2 save\r\n   37  sudo dnf install -y https:\/\/download.postgresql.org\/pub\/repos\/yum\/reporpms\/EL-10-x86_64\/pgdg-redhat-repo-latest.noarch.rpm\r\n   38  sudo dnf install -y postgresql16-server postgresql16\r\n   39  sudo \/usr\/pgsql-16\/bin\/postgresql-16-setup initdb\r\n   40  sudo systemctl enable --now postgresql-16\r\n   41  sudo systemctl status postgresql-16\r\n   42  sudo -i -u postgres psql\r\n   43  sudo rpm -i https:\/\/ftp.postgresql.org\/pub\/pgadmin\/pgadmin4\/yum\/pgadmin4-redhat-repo-2-1.noarch.rpm\r\n   44  sudo dnf install -y pgadmin4-web\r\n   45  sudo \/usr\/pgadmin4\/bin\/setup-web.sh\r\n   46  ls\r\n   47  cd Documents\/\r\n   48  ls\r\n   49  cd projets-web-app\/\r\n   50  mkdir mycontact\r\n   51  cd mycontact \r\n   52  npm init -y\r\n   53  pm2 -v\r\n   54  pm2 start index.js --name \"mycontact\"\r\n   55  pm2 save\r\n   56  pm2 startup\r\n   57  sudo env PATH=$PATH:\/usr\/bin \/usr\/local\/lib\/node_modules\/pm2\/bin\/pm2 startup systemd -u ec2-user --hp \/home\/ec2-user\r\n   58  pm2 save\r\n   59  pm2 status\r\n   60  pm2 logs mycontact --lines 20\r\n   61  sudo systemctl enable --now cockpit.socket\r\n   62  sudo systemctl start cockpit.socket\r\n   63  echo 'ec2-user:kHa1981+$*' | sudo chpasswdecho 'ec2-user:kHa1981+$*' | sudo chpasswdecho 'ec2-user:kHa1981+$*' | sudo chpasswdecho 'ec2-user:kHa1981+$*' | sudo chpasswd\r\n   64  npm install express ejs pg dotenv\r\n   65  mkdir -p views\/partials public\/{css,js} && touch index.js .env views\/{index,contacts}.ejs views\/partials\/{header,footer}.ejs public\/css\/style.css public\/js\/main.js\r\n   66  npm install express-session && touch views\/login.ejs\r\n   67  sudo npm install -g nodemon\r\n   68  nodemon index.js\r\n   69  sudo swapoff \/swapfile\r\n   70  sudo dd if=\/dev\/zero of=\/swapfile2 bs=1M count=2048 status=progress && sudo chmod 600 \/swapfile2 && sudo mkswap \/swapfile2 && sudo swapon \/swapfile2 && echo '\/swapfile2 swap swap defaults 0 0' | sudo tee -a \/etc\/fstab\r\n   71  free -h\r\n   72  echo \"vm.swappiness=80\" | sudo tee \/etc\/sysctl.d\/99-custom-swappiness.conf && sudo sysctl -p \/etc\/sysctl.d\/99-custom-swappiness.conf\r\n   73  watch -n 2 free -h\r\n   74  sudo systemctl disable --now bluetooth.service\r\n   75  systemctl status bluetooth.service\r\n   76  sudo systemctl disable --now cups.service\r\n   77  pm2 status\r\n   78  pm2 monit\r\n   79  pm2 save\r\n   80  pm2 startup\r\n   81  sudo env PATH=$PATH:\/usr\/bin \/usr\/local\/lib\/node_modules\/pm2\/bin\/pm2 startup systemd -u ec2-user --hp \/home\/ec2-user\r\n   82  df -h\r\n   83  free -h\r\n   84  htop\r\n   85  uptime\r\n   86  systemctl list-units --type=service --state=running\r\n   87  systemctl list-units --type=service --state=running\r\n   88  systemctl list-units --type=service --all\r\n   89  pm2 status\r\n   90  sudo insights-client\r\n   91  npm install express-useragent axios\r\n   92  pkill -f node\r\n   93  nodemon index.js\r\n   94  nodemon index.js\r\n   95  npx kill-port 3000\r\n   96  nodemon index.js\r\n   97  sudo fuser -k 3000\/tcp\r\n   98  pm2 stop all\r\n   99  nodemon index.js\r\n  100  fuser -k 3000\/tcp; clear\r\n  101  nodemon index.js\r\n  102  pkill -f node\r\n  103  fuser -k 3000\/tcp\r\n  104  npx kill-port 3000\r\n  105  nodemon index.js\r\n  106  touch views\/login-visitors.ejs\r\n  107  touch views\/visitor-logs.ejs\r\n  108  touch public\/js\/telemetry.js\r\n  109  pkill -f node\r\n  110  nodemon index.js\r\n  111  pm2 start index.js --name \"mycontact\"\r\n  112  pm2 save\r\n  113  pm2 startup\r\n  114  sudo env PATH=$PATH:\/usr\/bin \/usr\/local\/lib\/node_modules\/pm2\/bin\/pm2 startup systemd -u ec2-user --hp \/home\/ec2-user\r\n  115  pm2 status\r\n  116  exit\r\n  117  fuser -k 3000\/tcp\r\n  118  clear\r\n  119  nodemon index.js\r\n  120  exit\r\n  121  free -h\r\n  122  df -h\r\n  123  uptime\r\n  124  who\r\n  125  last\r\n  126  uptime\r\n  127  who\r\n  128  last\r\n  129  top\r\n  130  htop\r\n  131  sudo dnf install htop -y\r\n  132  sudo dnf install https:\/\/dl.fedoraproject.org\/pub\/epel\/epel-release-latest-10.noarch.rpm -y\r\n  133  sudo \/usr\/bin\/crb enable\r\n  134  sudo dnf install htop -y\r\n  135  htop\r\n  136  pm2 list\r\n  137  history\r\n[ec2-user@Khelaf-Hanifi-MyRHEL10-VM-AWS ~]$ 1. Surveillance de l'\u00c9tat Global et du Syst\u00e8me","auteur":"Khelaf","created_at":"2026-09-14 20:56:22"},{"id":30,"question":"outils essentielle des commandes Linux ?","reponse":"1. Surveillance de l'\u00c9tat Global et du Syst\u00e8me\r\nuptime : Affiche depuis combien de temps le serveur tourne, le nombre d'utilisateurs connect\u00e9s et la charge processeur (load average) sur 1, 5 et 15 minutes.\r\n\r\nhostnamectl : Permet de voir et de modifier le nom d'h\u00f4te de la machine, la version exacte du syst\u00e8me d'exploitation (RHEL 10) et l'architecture.\r\n\r\nuname -r : Affiche la version exacte du noyau Linux (kernel) en cours d'ex\u00e9cution.\r\n\r\ntop ou htop : Offre une vue en temps r\u00e9el des processus actifs, de la consommation de la RAM et du processeur par application.\r\n\r\n2. Gestion de la M\u00e9moire et du Swap\r\nfree -h : Affiche l'\u00e9tat de la m\u00e9moire vive (RAM) et de l'espace de swap (total, utilis\u00e9, libre) de mani\u00e8re lisible pour un humain (en Mo\/Go).\r\n\r\nvmstat 1 : Fournit un rapport en direct sur les statistiques de la m\u00e9moire virtuelle, des processus et des E\/S disques (rafra\u00eechi toutes les secondes).\r\n\r\n3. Gestion du Disque et du Stockage\r\ndf -h : Affiche l'espace disque disponible et utilis\u00e9 sur toutes les partitions montr\u00e9es du syst\u00e8me.\r\n\r\ndf -i : Permet de v\u00e9rifier la consommation des inodes (le nombre de fichiers cr\u00e9\u00e9s), utile si un disque refuse d'\u00e9crire alors qu'il reste de la place en Go.\r\n\r\ndu -sh \/chemin\/dossier : Mesure la taille exacte occup\u00e9e par un dossier ou un fichier sp\u00e9cifique sur le disque.\r\n\r\nlsblk : Liste tous les disques physiques branch\u00e9s et leurs partitions sous forme d'arbre (tr\u00e8s utile pour voir les volumes NVMe).\r\n\r\n4. Suivi des Utilisateurs et des Connexions\r\nwho : Liste les utilisateurs actuellement connect\u00e9s sur la machine ainsi que leur terminal et adresse IP d'origine.\r\n\r\nw : Version plus d\u00e9taill\u00e9e de who, qui indique en plus ce que chaque utilisateur est en train d'ex\u00e9cuter comme commande.\r\n\r\nlast : Affiche l'historique complet et chronologique de toutes les connexions et des red\u00e9marrages pass\u00e9s du serveur.\r\n\r\n5. Administration Avanc\u00e9e et R\u00e9seau (Niveau Expert)\r\nsystemctl status nom_du_service : V\u00e9rifie l'\u00e9tat de sant\u00e9 et de fonctionnement d'un service syst\u00e8me (comme nginx, postgresql ou ton application Node.js).\r\n\r\njournalctl -u nom_du_service -f : Permet de suivre en direct (live) les logs et les erreurs d'un service sp\u00e9cifique.\r\n\r\nss -tunlp : Liste tous les ports r\u00e9seau ouverts sur la machine et les processus qui les \u00e9coutent (remplace avantageusement l'ancien netstat).\r\n\r\nps aux --sort=-%mem : Affiche la liste de tous les processus en cours, tri\u00e9s du plus gourmand en m\u00e9moire vive au moins gourmand.","auteur":"AhnizTech","created_at":"2026-09-14 20:48:51"}]}}