Blog

  • Changer le nom d’une machine sous Debian

    Définir le hostname de la VM

    Dans le fichier /etc/hostname

    Modifier le fichier /etc/hostname en remplaçant la valeur présente par le nom souhaité.

    vim /etc/hostname

    Redémarrer la machine pour prendre en compte le changement

    En ligne de commande

    Avec l’utilitaire hostname-ctl

    hostname-ctl set-hostname MonBeauServeur

    Peu importe la méthode souhaitée, il est recommandé d’actualiser le fichier hosts.

    vim /etc/hosts pour définir le bon hostname sur la ligne qui reprend l’ip localhost 127.0.0.1

  • GeoJson to Kml

    Convertir des fichiers GeoJson en KML

    Pour des données qui ne sont pas sensible il est possible d’utiliser un des outils disponible en ligne.

    https://mygeodata.cloud

    Il suffit d’uploader le fichier au format geoJson, de selectionner le champ souhaité pour le nom et celui pour la description, la suite se fait tout seul.

  • Préparer des données pour importer sur une carte GoogleMap

    Récupérer la cartographie des villes

    Afin de pouvoir personnaliser des cartes sur un outil comme Google maps il est nécessaire de connaitre les données que l’on souhaite afficher.

    Pour récupérer les informations sur les communes il existe différents portails dont un qui est géré par l’état Français.

    data.gouv.fr

    Afin de travailler avec des données géographique, un format dévié du XML a été créé.
    Il s’agit du format KML.

    C’est quoi le KML

    KML (Keyhole Markup Language) que l’on peut traduire par « langage à base de balises géolocales » est un langage fondé sur le formalisme XML et destiné à la gestion de l’affichage de données géospatiales dans les logiciels de SIG. Depuis 2008, le format est normalisé par l’Open Geospatial Consortium[1].

    Les fichiers KML utilisent le format COLLADA. Les fichiers KML peuvent également se présenter avec l’extension .kmz qui est la version zippée du fichier KML.

    Source : https://fr.wikipedia.org/wiki/Keyhole_Markup_Language

    Récupérer le fichier KML des communes de France.

    Un des jeux de données utile pour notre besoin du jour est le suivant :

    https://www.data.gouv.fr/datasets/kml-des-communes-y-compris-dom-tom

    Le fichier KML 2013 est le fichier le plus récent.

    Rechercher les informations pour une ville.

    Nous allons maintenant chercher les données de la ville de Dijon.
    Pour cela, il suffit d’ouvrir le fichier avec un éditeur de texte tel que Notepad++.
    Le plus simple étant maintenant d’utiliser la fonction rechercher de l’éditeur de texte (ctrl+F) ou bien l’équivalent dans le logiciel utilisé. Et rechercher les villes souhaitées. Il reste à répéter l’opération pour chacune des villes souhaitée. Une fois la ligne identifié un simple Copier/Coller pour extraite cette ligne du fichier texte et la placé dans un autre fichier texte sur le quel nous travaillerons.

    Récupérer les données au format KML

    Après avoir extrait plusieurs villes dont Dijon et les villes aux alentours nous obtenons ces données.

    21231,DIJON,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.089575536565229,47.286487209537071 5.056196514923361,47.300997032283817 5.028706681122397,47.296608925095136 5.016140192974899,47.30142966178078 5.002037776983911,47.300268971072107 4.978519714321396,47.303662031405473 4.971696607583492,47.307488282258824 4.967544283080219,47.315933533585437 4.970724157808152,47.318509095342414 4.964275919494243,47.323598200037317 4.966400123893134,47.326632980679001 4.994278957699485,47.33053399892669 5.010314023530682,47.323674686285592 5.017179347637073,47.339314742400305 5.024649884861583,47.335069363291673 5.038442192691177,47.337574685714742 5.034700867053301,47.353849680405737 5.039271224818588,47.354859169783069 5.036829731609578,47.367689329038335 5.041680050834943,47.372539025327015 5.051201895780872,47.377495278247764 5.055578365019143,47.372348049114727 5.055047862312534,47.363001040320682 5.06875348766261,47.353410352347851 5.082463517592105,47.350202635952819 5.069362815596588,47.340693004694394 5.074456094521769,47.321654805084457 5.088058456949834,47.318619261695531 5.083570599395527,47.313539759688005 5.085418542993923,47.310660839422667 5.101246127838603,47.30502609290091 5.096906405639799,47.301709485052612 5.089292649619458,47.293165444847197 5.089575536565229,47.286487209537071</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21617,TALANT,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.017179347637073,47.339314742400305 5.010314023530682,47.323674686285592 4.994278957699485,47.33053399892669 4.97428515596135,47.348003287477866 4.98057485365086,47.35328122736766 5.001077172390733,47.343411476076973 5.01075695925595,47.345045332001796 5.017179347637073,47.339314742400305</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21540,SAINT-APOLLINAIRE,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.088058456949834,47.318619261695531 5.074456094521769,47.321654805084457 5.069362815596588,47.340693004694394 5.082463517592105,47.350202635952819 5.103531659882708,47.355595482293928 5.118919864012566,47.336197221482166 5.109475551563838,47.32510328583809 5.097767992176658,47.319020567549366 5.088058456949834,47.318619261695531</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21535,RUFFEY-LES-ECHIREY,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.082463517592105,47.350202635952819 5.06875348766261,47.353410352347851 5.055047862312534,47.363001040320682 5.055578365019143,47.372348049114727 5.064401220832296,47.369445064177931 5.07918915728538,47.387092791726054 5.101489060982084,47.381937001079962 5.111920872581667,47.375471215539825 5.103531659882708,47.355595482293928 5.082463517592105,47.350202635952819</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21278,FONTAINE-LES-DIJON,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.034700867053301,47.353849680405737 5.038442192691177,47.337574685714742 5.024649884861583,47.335069363291673 5.017179347637073,47.339314742400305 5.01075695925595,47.345045332001796 5.016339662417089,47.361391922787497 5.033320077009097,47.356926610066942 5.034700867053301,47.353849680405737</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21223,DAIX,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.01075695925595,47.345045332001796 5.001077172390733,47.343411476076973 4.98057485365086,47.35328122736766 4.97428515596135,47.348003287477866 4.953618632699353,47.354998363633179 4.934874600118214,47.355915381571691 4.929346627615081,47.361752417400247 4.939374607118335,47.385088082861451 4.945634373691024,47.379652625655233 4.954834479249678,47.371637005516831 4.97908206396761,47.366336900742645 4.990739047195108,47.359726201789108 5.010925329995039,47.361557798747349 5.016339662417089,47.361391922787497 5.01075695925595,47.345045332001796</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21059,BELLEFOND,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.07918915728538,47.387092791726054 5.064401220832296,47.369445064177931 5.055578365019143,47.372348049114727 5.051201895780872,47.377495278247764 5.062028858377911,47.390829416355245 5.068984913871952,47.386212254608743 5.076783109805453,47.387964279040638 5.07918915728538,47.387092791726054</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    21027,ASNIERES-LES-DIJON,"<Polygon> <outerBoundaryIs> <LinearRing> <coordinates>5.041680050834943,47.372539025327015 5.03003299953786,47.382126354521063 5.040631837519833,47.400383109253241 5.050586997147076,47.40093737484974 5.054000151795407,47.394825726322303 5.062028858377911,47.390829416355245 5.051201895780872,47.377495278247764 5.041680050834943,47.372539025327015</coordinates> </LinearRing> </outerBoundaryIs> </Polygon>"
    

    Préparer le fichier KML

    Le fichier KML de sortie doit ressembler à ça :

    <?xml version="1.0" encoding="UTF-8"?>
    <kml xmlns="http://www.opengis.net/kml/2.2">
      <Document>
        <name>Dijon alentours</name>
        <Placemark>
          <name>Dijon (21231)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.089575536565229,47.286487209537071
            5.056196514923361,47.300997032283817
            5.028706681122397,47.296608925095136
            5.016140192974899,47.30142966178078
            5.002037776983911,47.300268971072107
            4.978519714321396,47.303662031405473
            4.971696607583492,47.307488282258824
            4.967544283080219,47.315933533435437
            4.970724157808152,47.318509095342414
            4.964275919494243,47.323598200037317
            4.966400123893134,47.326632980679001
            4.994278957699485,47.33053399892669
            5.010314023530682,47.323674686285592
            5.017179347637073,47.339314742400305
            5.024649884861583,47.335069363291673
            5.038442192691177,47.337574685714742
            5.034700867053301,47.353849680405737
            5.039271224818588,47.354859169783069
            5.036829731609578,47.367689329038335
            5.041680050834943,47.372539025327015
            5.051201895780872,47.377495278247764
            5.055578365019143,47.372348049114727
            5.055047862312534,47.363001040320682
            5.06875348766261,47.353410352347851
            5.082463517592105,47.350202635952819
            5.069362815596588,47.340693004694394
            5.074456094521769,47.321654805084457
            5.088058456949834,47.318619261695531
            5.083570599395527,47.313539759688005
            5.085418542993923,47.310660839422667
            5.101246127838603,47.30502609290091
            5.096906405639799,47.301709485052612
            5.089292649619458,47.293165444847197
            5.089575536565229,47.286487209537071
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Talant (21617)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.017179347637073,47.339314742400305
            5.010314023530682,47.323674686285592
            4.994278957699485,47.33053399892669
            4.97428515596135,47.348003287477866
            4.98057485365086,47.35328122736766
            5.001077172390733,47.343411476076973
            5.01075695925595,47.345045332001796
            5.017179347637073,47.339314742400305
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Saint‑Apollinaire (21540)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.088058456949834,47.318619261695531
            5.074456094521769,47.321654805084457
            5.069362815596588,47.340693004694394
            5.082463517592105,47.350202635952819
            5.103531659882708,47.355595482293928
            5.118919864012566,47.336197221482166
            5.109475551563838,47.32510328583809
            5.097767992176658,47.319020567549366
            5.088058456949834,47.318619261695531
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Ruffey lès Échirey (21535)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.082463517592105,47.350202635952819
            5.06875348766261,47.353410352347851
            5.055047862312534,47.363001040320682
            5.055578365019143,47.372348049114727
            5.064401220832296,47.369445064177931
            5.07918915728538,47.387092791726054
            5.101489060982084,47.381937001079962
            5.111920872581667,47.375471215539825
            5.103531659882708,47.355595482293928
            5.082463517592105,47.350202635952819
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Fontaine lès Dijon (21278)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.034700867053301,47.353849680405737
            5.038442192691177,47.337574685714742
            5.024649884861583,47.335069363291673
            5.017179347637073,47.339314742400305
            5.01075695925595,47.345045332001796
            5.016339662417089,47.361391922787497
            5.033320077009097,47.356926610066942
            5.034700867053301,47.353849680405737
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Daix (21223)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.01075695925595,47.345045332001796
            5.001077172390733,47.343411476076973
            4.98057485365086,47.35328122736766
            4.97428515596135,47.348003287477866
            4.953618632699353,47.354998363633179
            4.934874600118214,47.355915381571691
            4.929346627615081,47.361752417400247
            4.939374607118335,47.385088082861451
            4.945634373691024,47.379652625655233
            4.954834479249678,47.371637005516831
            4.97908206396761,47.366336900742645
            4.990739047195108,47.359726201789108
            5.010925329995039,47.361557798747349
            5.016339662417089,47.361391922787497
            5.01075695925595,47.345045332001796
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Bellefond (21059)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.07918915728538,47.387092791726054
            5.064401220832296,47.369445064177931
            5.055578365019143,47.372348049114727
            5.051201895780872,47.377495278247764
            5.062028858377911,47.390829416355245
            5.068984913871952,47.386212254608743
            5.076783109805453,47.387964279040638
            5.07918915728538,47.387092791726054
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
        <Placemark>
          <name>Asnières lès Dijon (21027)</name>
          <Polygon><outerBoundaryIs><LinearRing><coordinates>
            5.041680050834943,47.372539025327015
            5.03003299953786,47.382126354521063
            5.040631837519833,47.400383109253241
            5.050586997147076,47.40093737484974
            5.054000151795407,47.394825726322303
            5.062028858377911,47.390829416355245
            5.051201895780872,47.377495278247764
            5.041680050834943,47.372539025327015
          </coordinates></LinearRing></outerBoundaryIs></Polygon>
        </Placemark>
    
      </Document>
    </kml>
  • DNF – Configurer un proxy

    Comment installer des logiciels avec DNF derrière un proxy (sur Red Hat, CentOS, etc.)

    Sur certaines distributions Linux comme Red Hat, CentOS, AlmaLinux ou Rocky Linux, on utilise la commande dnf pour installer des logiciels.

    Astuce : Si vous voyez des tutos qui utilisent yum, pas de panique ! yum et dnf fonctionnent presque pareil, car yum est un ancien nom qui redirige automatiquement vers dnf.

    Exemple : installer un outil réseau

    dnf install tcpdump
    

    Mais… dans certaines entreprises, il faut passer par un proxy pour accéder à Internet. C’est comme si vous deviez parler à Internet en passant par un agent intermédiaire.

    Comment dire à DNF de passer par ce « proxy » ?

    Il faut modifier un fichier de configuration qui se trouve ici :

    /etc/dnf/dnf.conf
    

    Ouvrez ce fichier avec des droits administrateur, par exemple :

    sudo nano /etc/dnf/dnf.conf
    

    Et ajoutez cette ligne en remplaçant par les bonnes valeurs :

    proxy=http://adresse-ip:port/
    

    Par exemple :

    proxy=http://192.168.1.100:8080/
    

    Si votre proxy demande un identifiant et un mot de passe

    Ajoutez aussi :

    proxy_username=mon_identifiant
    proxy_password=mon_mot_de_passe
    

    Et éventuellement (facultatif) :

    proxy_auth_method=basic
    

    Il existe d’autres méthodes d’authentification comme digest, ntlm, etc., mais basic fonctionne souvent par défaut.


    Résumé

    • Pour installer des logiciels, on utilise dnf.
    • Si un proxy est nécessaire, on le configure dans /etc/dnf/dnf.conf.
    • On peut aussi y mettre un identifiant et un mot de passe si le proxy l’exige.
  • Linux : Compter le nombre de fichiers

    Comment compter le nombre de fichiers dans une arborescence sous Linux

    Pour compter le nombre total de fichiers présents dans un dossier et ses sous-dossiers, la commande suivante est très simple à utiliser :

    ls -R | wc -l

    Que fait cette commande ?

    Cette commande liste récursivement tous les fichiers et dossiers (ls -R), puis compte le nombre de lignes (wc -l), ce qui correspond au nombre total d’éléments listés.

    Cependant, cette méthode peut parfois être imprécise, car elle compte aussi les noms de dossiers et dépend du format de sortie de ls.


    Une méthode plus fiable avec find

    Pour plus de précisions, la commande find est idéale. Par exemple, pour compter tous les fichiers dans un répertoire et ses sous-répertoires :

    find . -type f | wc -l
    
    Ici, find cherche tous les fichiers (-type f) à partir du répertoire courant (.) et wc -l compte leur nombre.
    Un article plus complet sur la commande find sera disponible prochainement.

    Un cas concret : Compter uniquement les fichiers XML

    Pour ne compter que les fichiers avec une extension .xml, l’argument -name sera notre ami :

    find . -type f -name "*.xml" | wc -l

    Cette commande recherchera les fichiers terminant par .xml et affichera leur nombre.


    Pourquoi préférer find ?

    Même si find semble plus compliquer à utiliser, l’effort est vite récompensé avec des résultats plus précis.

    • find gère parfaitement les noms de fichiers contenant des espaces ou caractères spéciaux.
    • find distingue bien fichiers et dossiers, ce qui évite les erreurs de comptage.
    • Elle permet des recherches plus avancées (par taille, date, permissions…).

    Avec ces méthodes, tu peux facilement obtenir des statistiques fiables sur tes fichiers dans une arborescence sous Linux.

  • Bonjour tout le monde !

    Bienvenue sur WordPress. Ceci est votre premier article. Modifiez-le ou supprimez-le, puis commencez à écrire !