Accueil

[ TITLE    ] : Vim - Cursor Line & Column
[ CATEGORY ] : //
[ DATE     ] :

Il est possible de surligner la ligne et la colonne où le curseur est positionné. Cette forme de visualisation est pratique pour les fichiers de types YAML par exemple. Dans Vim, en mode commande (touche Echap). Paramétrer l’affichage des lignesAfficher les lignesPour avoir un trait vertical taper, au choix : :set cuc:set cursorColumn Pour avoir un trait horizontal taper, au choix : :set cul:set cursorLine Surligner : :highlight cursorLine cterm=underline:highlight cursorColumn cterm=underli

[ 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    ] : Soft Link & Hard Link
[ CATEGORY ] : //
[ DATE     ] :

Comment différencier un lien symbolique (soft) d’un lien en dur sous Linux. Pour rappel, un lien se créé avec la commande ln. Pour les dossiers, seuls les liens symboliques sont possibles : # ln MonFichier hardLink# ln -s MonFichier symbolicLink Différences HardLink et SoftLink HardLink SoftLink Accessible en utilisant plusieurs noms Accessible par de nombreuses références pointant vers le fichier originel Si fichier d’origine supprimé : lien toujours accessible Si fichier d’origine supp

[ TITLE    ] : Commande ls - Type de fichier
[ CATEGORY ] : //
[ DATE     ] :

La commande ls avec l’option -l permet de connaître le type de fichier en se basant sur la 1ère lettre de la sortie. L’option -F permet quand à elle d’aouter un symbole correspondant au type de fichier listé. Elle ne peut pas toujours se combiner à l’option -l, par exemple avec les liens symboliques où le @ ne s’affiche pas. Option de lsManuelExtrait du manuel : -F, --classify append indicator (one of */=>@|) to entries Les commandes à utiliser : # ls -F <chemin># ls -lF <chemin>

[ TITLE    ] : SLURM - Stats & Diagnostic
[ CATEGORY ] : //
[ DATE     ] :

Pour effectuer des diagnostics et sortir des statistiques sous SLURM, on peut utiliser 3 commandes : # sdiag# sacctmgr show stats# sacctmgr show problem Commande sdiagUtilitéLa commande sdiag permet d’obtenir de nombreuses informations sur : le nombre de jobs (lancés, annulés, terminés, échoués, etc.) les appels RCP et qui les exécute les temps des traitements ExempleExemple de sortie : # sdiagServer thread count: 3Agent queue size: 0Agent count: 0DBD Agent queue size: 0Jobs submitted: 523Jo

[ TITLE    ] : TiNa - Extraire la liste des médias
[ CATEGORY ] : //
[ DATE     ] :

Pour extraire la liste des médias de sauvegarde. GUIDans l’interface de la console d’administration : Storage > Media > Managment Puis sélectionnez un jeu de données (Annuel, Mensuel, etc.) puis cliquez sur “Export“

[ TITLE    ] : TiNa - Rotation des médias
[ CATEGORY ] : //
[ DATE     ] :

Pour effectuer une rotation des médias de sauvegarde GUIDans l’interface de la console d’administration : Device > Library > Opération > Réinitialisation > Full Inventory

[ TITLE    ] : Javascript - Image aléatoire
[ CATEGORY ] : //
[ DATE     ] :

Pour modifier une image HTML toutes les 10 secondes en JavaScript : <img id="image" src="https://lien/vers/image/01.jpg" style="width:100px"> <script> var imageSources = ["https://lien/vers/image/02.jpg", "https://lien/vers/image/03.jpg", "https://lien/vers/image/04.jpg", "https://lien/vers/image/05.jpg"] var index = 0; setInterval(function(){ if (index === imageSources.length) {

[ 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    ] : Ansible - Deployer des packages
[ CATEGORY ] : //
[ DATE     ] :

Il existe plusieurs façon de créer un répertoire avec Ansible dans un playbook.Base de création d’un playbook : https://n0tes.fr/2023/02/12/Ansible-Playbook/ Déployer des packagesDéployer de façon génériqueLe module ansible.builtin.package permet de déployer des packages dans un parc hétérogène (Debian/RedHat). - name: Install ntpdate ansible.builtin.package: name: ntpdate state: present# This uses a variable as this changes per distribution.- name: Remove the apache package ansible.buil

[ TITLE    ] : Installer depuis un volume distant
[ CATEGORY ] : //
[ DATE     ] :

Il existe plusieurs façon de créer un répertoire avec Ansible dans un playbook.Base de création d’un playbook : https://n0tes.fr/2023/02/12/Ansible-Playbook/ Déployer des packages sur un volume distantCe playbook monte un volume de repository et installe par la suite les packages python3 et mariaDB-common via le module ansible.builtin.yum. Des variables ont été définies dans la section vars du playbook. ---- name: Mount Vol et Intall RPM hosts: Parc-Linux-RHEL become: true vars: mynfs: &q

[ TITLE    ] : Monter des volumes
[ CATEGORY ] : //
[ DATE     ] :

Pour monter un volume, on utilise la commande mount qui modifie le fichier /etc/fstab, ce fichier s’applique à chaque redemarrage de la machine. Si elle ne peut être éteinte, il faut forcer sa relecture pour que les changements puissent y être appliqués. Monter un volumeVolume localSimplement avec la commande mount ou en modifiant le fichier /etc/fstab pour le rendre permanent : # mount -t nfs /dev/sdd1 /mnt/mon/volume Sur du NetApp : # mount -t nfs aggregat25:/vol/volume /mnt/mon/volume Démont

[ TITLE    ] : Ansible - Deployer des services
[ CATEGORY ] : //
[ DATE     ] :

Il existe plusieurs façon de créer un répertoire avec Ansible dans un playbook.Base de création d’un playbook : https://n0tes.fr/2023/02/12/Ansible-Playbook/ Lancer des servicesLancer un service : - name: Start service httpd, if not started ansible.builtin.service: name: httpd state: started Stoper un service : - name: Stop service httpd, if started ansible.builtin.service: name: httpd state: stopped Relancer un service : - name: Restart service httpd, in all cases ansible.buil

[ TITLE    ] : Ansible - Monter des volumes
[ CATEGORY ] : //
[ DATE     ] :

Il existe plusieurs façon de monter un volume avec Ansible dans un playbook.Base de création d’un playbook : https://n0tes.fr/2023/02/12/Ansible-Playbook/ Monter un volumeMonter un volume : ---- name: Monter un volume ansible.posix.mount: path: /home/levolume src: data:/vol/leVolume fstype: rw,rsize=32768,wsize=32768 state: mounted- name: Mount DVD read-only ansible.posix.mount: path: /mnt/dvd src: /dev/sr0 fstype: iso9660 opts: ro,noauto state: present- name: Mount up devi

[ TITLE    ] : SGE - Proprietes des queues
[ CATEGORY ] : //
[ DATE     ] :

Il est possible de paramétrer des queues sous SGE avec la commande qconf. Lister les propriétés des queuesLister toutes les queues : # qconf -sql Détails d’une queue en particulier : # qconf -sq <nom_queue> Configurer une queueAjouter une nouvelle queueAjouter une nouvelle queue (l’éditeur de texte par defaut s’ouvrira pour modifier le modèle prédéfini) : # qconf -aq <nom_Queue> Ajouter une nouvelle queue à partir d’un fichier qui a déjà définie la queue (Le fichier de définition

[ TITLE    ] : Imprimer en ligne de commande
[ CATEGORY ] : //
[ DATE     ] :

La commande lp permet de gérer les impressions en ligne de commande sous Linux avec le serveur d’impression CUPS (Common Unix Printing System). Serveur d’impression CUPSIntallationPour intaller le serveur d’impression CUPS : # apt install lprng ConfigurationLes fichiers de configuration de CUPS se trouvent dans /etc/cups/printers.conf. Pour partager l’imprimante il faut lui préciser son @IP, son port et mettre Shared Yes : # Printer configuration file for CUPS v1.4.3# Written by cupsd# DO NOT

[ TITLE    ] : Usermod - Modifier le /etc/passwd
[ CATEGORY ] : //
[ DATE     ] :

Pour modifier les informations d’un utilisateur contenues le /etc/passwd on utilise usermod. UtilisationExtrait du manuelExtrait du manuel : -d, --home HOME_DIR new home directory for the user account-e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE-f, --inactive INACTIVE set password inactive after expiration to INACTIVE-g, --gid GROUP force use GROUP as new primary group-G, --groups GROUPS new list of supplementary GROUPS-a, --app

[ TITLE    ] : Ansible - Manipuler fichiers/dossiers
[ CATEGORY ] : //
[ DATE     ] :

Il existe plusieurs façon de créer un répertoire avec Ansible dans un playbook.Base de création d’un playbook : https://n0tes.fr/2023/02/12/Ansible-Playbook/ Manipuler des fichiersCopieCopier un fichier : - name: Copy file with owner and permissions ansible.builtin.copy: src: /srv/myfiles/john.conf dest: /etc/john.conf- name: Copy file with owner and permissions ansible.builtin.copy: src: /srv/myfiles/john.conf dest: /etc/john.conf owner: john group: john mode: '0644&

[ TITLE    ] : Ansible - Playbook
[ CATEGORY ] : //
[ DATE     ] :

Les commandes usuelles pour lancer votre playbook sont : # ansible-playbook playbook.yaml# ansible-playbook -i /chemin/inventory.yaml playbook.yaml# ansible-playbook -b -k playbook.yaml -u ansible -v Tous les playbooks doivent commencer de la façon suivante : ---- name: <Titre> hosts: <Nom_groupe_hosts_dans_inventory> <options> // exemple become:true tasks: La suite contient les tâches à déployer : [...] // les tâches à déployer sur les n

[ TITLE    ] : Ansible - Les modules et Plugins
[ CATEGORY ] : //
[ DATE     ] :

Pour pouvoir lancer certains playbooks, Ansible a besoin d’appeler des modules ou des plugins. Liste des modules et pluginsAnsible BuiltinLa collection “ansible.builtin” est un ensemble de modules/plugins propres à Ansible. https://docs.ansible.com/ansible/latest/collections/ansible/builtin/ Autres collectionsD’autre modules/plugins existent et permettent d’interférer avec d’autres solutions comme Windows, NetApp, Docker, Google, Amazon, Cisco, Graphana, mysql, etc. https://docs.ansible.com/ansi

[ TITLE    ] : Ansible - Commande pour l'inventaire
[ CATEGORY ] : //
[ DATE     ] :

Le fichier se place dans /etc/ansible/hosts et référence tous les noeuds que doit traiter Ansible. Il est possible selon la configuration, d’utiliser directement des sous-dossiers en fonction des groupes ou des variables attribuées. Commandes pour l’inventairePour vérifier l’inventaire, la commande ping d’Ansible peut-être utilisée : # ansible all -m ping# ansible all:\&prod -m ping# ansible chimie:\!prod -m ping Pattern Résultat all Tous les hosts de l’inventaire host1 Un seul host

[ TITLE    ] : Ansible - Construire un inventaire
[ CATEGORY ] : //
[ DATE     ] :

Pour fonctionner correctement, Ansible a besoin d’un fichier hosts spécifique et d’un playbook (plans d’automatisation) écrits en YAML (ou INI pour l’inventory). Fichier hostsLe fichier se place dans /etc/ansible/hosts et référence tous les noeuds que doit traiter Ansible. Liste des hostsFormat INIFichier au format INI : mail.mondomaine.fr[webservers]intranet.mondomaine.frwiki.mondomaine.fr[prod]cluster01.mondomaine.fr:cluster02.mondomaine.fr:[testNode]LINUX-444.mondomaine.fr:LINUX-666.mondomain

[ TITLE    ] : Ansible - Les bases
[ CATEGORY ] : //
[ DATE     ] :

Sous Ansible, le principe de fonctionnement tourne autours de 3 choses essentielles : L’inventaire (les machines, clientes ou serveurs) Les playbooks (Syntaxe YAML définissant les tâches à déployer) Les modules (appel de modules spécifiques en fonction de la tâche demandée) L’inventaireIl se trouve dans /etc/ansible/hosts et contient la définition de tous les noeuds (hosts+serveurs) du parc. Il est possible de définir l’inventaire dans un autre dossier et de le préciser lorsque vous lancer vos

[ TITLE    ] : Ansible
[ CATEGORY ] : //
[ DATE     ] :

Ansible est un outils de déploiement multinoeuds. Le déploiement sur les noeuds/serveurs/hôtes se fait en SSH (ne nécessite donc pas d’installation de logiciels supplémentaires sur ces derniers). Accessoirement, un ansible est un dispositif fictif (imaginé en 1966 par Ursula K. Le Guin) permettant de communiquer à une vitesse supraluminique (vitesse supérieure à celle de la lumière). Principes de baseAnsible automatise la gestion des systèmes distants et contrôle leur état souhaité. Un environn

[ TITLE    ] : Adresses IPV4 privées
[ CATEGORY ] : //
[ DATE     ] :

Simple rappel sur les plages d’adresses IPV4 privées. Préfixe Plage IP Nombre d’adresses 10.0.0.0/8 10.0.0.0 – 10.255.255.255 2^(32-8) = 16 777 216 172.16.0.0/12 172.16.0.0 – 172.31.255.255 2^(32-12) = 1 048 576 192.168.0.0/16 192.168.0.0 – 192.168.255.255 2^(32-16) = 65 536 Documentationhttps://fr.wikipedia.org/wiki/R%C3%A9seau_priv%C3%A9https://fr.wikipedia.org/wiki/Adresse_IP

[ 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    ] : TiNa - Créer des applications
[ CATEGORY ] : //
[ DATE     ] :

Une application sous TiNa est (en général) un ensemble de sauvegardes sur lequel il faut préciser les volumes à sauvegarder, à quelles fréquence et sur quels médias. Prérequis - vérificationsNetappVérifier les volumesEn premier lieu, il faut vérifier les volumes à sauvegarder dans Netapp, en console : > set -row 0> volume showclusterHPC_01 vol0 aggr0_clusterHPC_01 online RW 500PB 450TB 5% clusterHPC_02 vol0 aggr0_clusterHPC_02 online RW 500PB 450TB 5% svm_

[ TITLE    ] : Cloudflare et HTTPS
[ CATEGORY ] : //
[ DATE     ] :

Cloudflare peut faire autorité de certification et générer un certificat TLS gratuitv à installer sur votre serveur Nginx. PrérequisLes prérequis sont : Un serveur Nginx configuré pour un site Internet en https Un compte Cloudflare paramétré pour votre site Internet Un nom de domaine avec accès aux DNS pour les faire pointer chez Cloudflare Génération du certificatSur Cloudflare, dans Websites, selectionner votre site Internet. Une fois dans le pannel d’administration de votre site, dans le me

[ TITLE    ] : SLURM - Modifier temps de calcul
[ CATEGORY ] : //
[ DATE     ] :

Parfois il arrive que des utilisateurs aient lancé des jobs sur une queue avec une QOS (de temps) trop courte et que leurs calculs ne puissent pas se finir dans le temps imparti. Pour leur accorder du temps supplémentaire, il faut modifier le TimeLimit à l’aide de la commande scontrol avec un update. Créer une limite de tempsNormalement on définie une QOS valable pour un groupe d’utilisateurs ou pour une queue/noeud mais il est possible de modifier une valeur (ici de temps) au cas par cas. Affic

[ TITLE    ] : Bash - Jeux Tetris
[ CATEGORY ] : //
[ DATE     ] :

J’ai trouvé 2 tetris en bash, les liens originaux se trouvent dans la section Documentation. ScriptsVersion colorLe script tétris en bash avec des couleurs : #!/bin/bash # Tetris Game #APP declarationAPP_NAME="${0##*[\\/]}"APP_VERSION="1.0" cRed=1cGreen=2cYellow=3cBlue=4cFuchsia=5cCyan=6cWhite=7colorTable=($cRed $cGreen $cYellow $cBlue $cFuchsia $cCyan $cWhite) iLeft=3iTop=2((iTrayLeft = iLeft + 2))((iTrayTop = iTop + 1))((iTrayWidth = 10))((iTrayHeight = 15)) cBord

[ TITLE    ] : Bash - Deviner un nombre
[ CATEGORY ] : //
[ DATE     ] :

Script avec une boucle while et un random pour deviner un nombre compris entre 0 et 1000 Script bashAvec mise en formeLe scriptLe script avec une mise en forme : #!/bin/bashnumber=$(( $RANDOM % 1000 + 1 ))echo -e "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"echo -e "┃ JEUX : DEVINER UN NOMBRE "echo -e "┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"guess=0n=0echo -n "┃ Deviner le nombre compris entre

[ TITLE    ] : Commande cryptsetup - LUKS
[ CATEGORY ] : //
[ DATE     ] :

LUKS (Linux Unified Key Setup) est un standard associé au noyau Linux pour chiffrer les disques. Sous Linux ce chiffrement se fait avec la commande cryptsetup. Commandes LUKSLa commande cryptsetup s’utilise comme telle, elle demande les privilèges les plus élevés du système (root, ansible, etc.) : # cryptsetup [OPTION...] <action> <paramètres de l'action> Actions possibles Commandes Actions open <volume> [--type <type>] [<nom>] ouvrir le volume close