• Aide
  • Eurêkoi Eurêkoi

Livre

Scripting Python sous Linux : développez vos outils système

Résumé

Une présentation de l'environnement de travail et des bases de Python, suivie de l'étude de la librairie standard du langage et de la POO. L'auteur explique comment concevoir des outils d'administration avec des exemples, des astuces pour mettre en oeuvre des techniques plus avancées et des ressources complémentaires disponibles en téléchargement.


  • Éditeur(s)
  • Date
    • C 2023
  • Notes
    • IT = Informatique technique
    • La couv. porte en plus : "En téléchargement : scripts exemples" ; "Informatique technique" ; "Version en ligne offerte ! pendant 1 an"
    • La 4e de couv. indique : "Sue www.editions-eni.fr : les scripts des exemples du livre"
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (862 p.) : ill. ; 22 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-04076-4
  • Indice
  • Quatrième de couverture
    • Scripting Python sous Linux

      Développez vos outils système

      Ce livre s'adresse aux ingénieurs système qui souhaitent écrire leurs propres outils d'administration d'un système Linux à l'aide du langage Python. Articulé en trois parties, ce livre donne les explications nécessaires au lecteur, suivies d'exemples concrets de difficulté croissante, pour ainsi étendre les possibilités du shell. La connaissance d'un autre langage de programmation, d'un système Linux (quelle que soit la distribution) et des principes de base d'Unix est un plus pour la lecture de ce livre.

      Débutée par quelques chapitres pour présenter l'environnement de travail et rappeler les bases du langage Python, la première partie présente ensuite les principes de la Programmation Orientée Objet en Python ainsi que la librairie standard de Python.

      Dans la deuxième partie, le lecteur apprend grâce à des exemples concrets à concevoir des outils pour récupérer des informations sur le système, à générer une infrastructure sur le cloud AWS, à renifler le réseau pour récupérer des informations, à accéder aux bases de données, à utiliser différents formats de fichiers (.odt, .csv, .ini, .tar, .zip...), à générer des cartes, à générer des documents au format texte, CSV ou HTML, ou encore à générer des données aléatoires cohérentes... À la fin de cette partie, la simulation de l'activité d'une petite entreprise de gestion permet au lecteur de tester des scripts facilitant la prise de commandes, leurs livraisons et la gestion de stock.

      La dernière partie propose au lecteur une série d'astuces et d'exemples concrets lui permettant de mettre en oeuvre des techniques plus avancées. L'auteur donne également un aperçu d'outils et d'applications écrites en Python qui font la différence pour aller plus loin dans l'écriture de scripts avec ce langage.

      Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.


  • Tables des matières
      • Scripting Python sous Linux

      • 2e édition

      • Développez vos outils système

      • Éditions-eni

      • Avant-propos
      • Partie 1 : Découvrir
      • Chapitre 1-1
      • L'environnement de travail
      • 1. Le langage Python en 202317
      • 2. L'environnement de travail18
      • 3. Un terminal et l'interpréteur Python18
      • 4. Un incontournable : Git19
      • 5. La configuration de l'environnement Python19
      • 5.1 Étape 1 : repérez le binaire Python qui vous intéresse20
      • 5.2 Étape 2 : vérifiez la présence de la commande pip qui va avec21
      • 5.3 Étape 3 : vérifiez le module virtualenv21
      • 6. Les autres outils nécessaires24
      • 7. Git un compte, des projets et des sauvegardes24
      • 8. Inscription sur un site et configuration de base26
      • 9. Astuce pour GitHub avec l'authentification SSH27
      • 10. Création d'un projet27
      • Chapitre 1-2
      • Le côté fonctionnel classique de Python
      • 1. Introduction33
      • 2. Premiers pas33
      • 2.1 La commande python34
      • 2.2 L'indentation comme syntaxe36
      • Chapitre 1-3
      • Quelques instructions de base
      • 1. Introduction43
      • 2. Les opérateurs43
      • 3. Les variables45
      • 4. Quelques instructions de base46
      • 5. Résumé48
      • Chapitre 1-4
      • Les types de données en Python
      • 1. Introduction49
      • 2. Les booléens50
      • 2.1 Les opérateurs booléens51
      • 2.2 Les comparaisons logiques52
      • 3. Les numériques53
      • 3.1 Les entiers53
      • 3.2 Les flottants54
      • 3.3 Les opérations55
      • 4. Les alphanumériques57
      • 4.1 Les opérations applicables aux chaînes de caractères59
      • 4.2 Les méthodes applicables aux chaînes de caractères60
      • 4.3 Les modificateurs de chaînes ou « string modifiers »67
      • 5. Les conteneurs ou séquentiels69
      • 5.1 Les listes69
      • 5.2 Les dictionnaires79
      • 5.3 Les tupies85
      • 5.4 Les sets87
      • 5.5 Les frozensets92
      • 6. Autres types de données92
      • 7. Résumé94
      • Chapitre 1-5
      • Le langage Python
      • 1. Introduction95
      • 2. La fonction print()95
      • 2.1 Print() formatage C-STYLE96
      • 2.2 Print() formatage chaîne.format()99
      • 2.3 Print() les autres options104
      • 3. Les structures conditionnelles105
      • 3.1 La structure conditionnelle if-elif-else105
      • 3.2 La structure conditionnelle match-case107
      • 4. Les boucles116
      • 4.1 Quelques exemples simples116
      • 4.2 La fonction range()117
      • 4.3 Un « else » dans les boucles119
      • 4.4 sorted() et sort()120
      • 4.5 enumerate()120
      • 4.6 L'affectation parallèle dans les boucles121
      • 4.7 Les dictionnaires et la fonction items()122
      • 4.8 Les listes en compréhension124
      • 5. Les fonctions126
      • 5.1 Les arguments de fonctions avec Python128
      • 5.2 Les fonctions et la portée des variables132
      • 5.3 La notion de passage de paramètres par référence136
      • 6. Les modules et les paquets139
      • 6.1 Les espaces de noms141
      • 6.2 Les paquets ou packages143
      • 6.3 La recherche des modules et paquets147
      • 6.4 Le fichier main .py147
      • 6.5 Exemple avec la gestion d'un restaurant147
      • 7. Les exceptions et la gestion des erreurs158
      • 7.1 Les instructions try ... except ... finally159
      • 7.2 L'instruction assert161
      • 7.3 Déclencher des exceptions162
      • 8. Les entrées/sorties (fichier et autres)164
      • 9. L'instruction With168
      • 10. Exemple de script : hdump169
      • 11. Résumé173
      • Chapitre 1-6
      • Le côté Objet de Python
      • 1. Introduction175
      • 2. La POO176
      • 3. L'objet176
      • 4. La classe177
      • 5. Une classe simple177
      • 6. Ajoutons des attributs183
      • 7. Un premier script « objet »185
      • 8. La surcharge de fonction188
      • 9. L'héritage189
      • 10. Exemples de scripts191
      • 10.1 Ajoutons le format HTML198
      • 10.2 Ajoutons la balise <table>201
      • 10.3 Ajoutons le format CSV203
      • 11. Résumé207
      • Chapitre 1-7
      • Librairie standard et quelques autres
      • 1. Introduction209
      • 2. La commande pip210
      • 3. Les modules sys et os212
      • 3.1 Le module sys212
      • 3.2 Le module os213
      • 4. Les options de la ligne de commandes215
      • 5. L'interception des signaux218
      • 6. Les fichiers temporaires221
      • 7. Les modules pour les opérations sur les fichiers et les répertoires222
      • 7.1 os.path222
      • 7.2 shutil224
      • 7.3 path.py227
      • 7.4 pathlib227
      • 8. La gestion des processus et sous-processus229
      • 8.1 Subprocess.run()230
      • 8.2 subprocess.popen()232
      • 8.3 Envoyer une commande plus complexe et récupérer la sortie.234
      • 8.4 Multiprocessing - Le parallélisme par processus236
      • 9. Matplotlib242
      • 10. RRDtool245
      • 11. Les expressions régulières (it's a kind of magic)250
      • 11.1 Exemple : récupérer des informations sur l'état du système avec sar (system activity report)257
      • 11.2 Exemple : récupérer des informations sur la mémoire des processus260
      • 12. Les dates et le temps (back to the future)263
      • 12.1 stdlib : calendar, datetime, dateutil, time264
      • 12.2 Arrow267
      • 13. Le module logging268
      • 14. L'accès aux fichiers en mode binaire et le module struct274
      • 15. La génération de données aléatoires276
      • 16. L'accès aux bases de données279
      • 16.1 Les bases de données « SQL »280
      • 16.2 Les bases de données « NoSQL »292
      • 16.3 MongoDB293
      • 16.4 Redis299
      • 17. Les ORM ou Object Relationnal Mapping302
      • 17.1 SQLAlchemy304
      • 17.2 Les autres ORM312
      • 18. Réseau314
      • 18.1 Un serveur web en une ligne de commande315
      • 18.2 Envoyer des mails315
      • 18.3 La vérification des boîtes mails317
      • 18.4 Python et ssh322
      • 18.5 Le transfert de fichier avec ftplib324
      • 18.6 telnet lib327
      • 19. Python et Scapy : le couteau suisse du réseau332
      • 19.1 Analyse d'une connexion FTP334
      • 19.2 Dissection d'un paquet ICMP339
      • 20. Python et le réseau des réseaux : Internet341
      • 20.1 Urllib : requests342
      • 20.2 Beautiful soup347
      • 21. OpenStreetMap et Folium353
      • 22. Outils356
      • 22.1 Pexpect356
      • 22.2 Cmd360
      • 22.3 shlex - Analyse lexicale simple367
      • 22.4 Le module humanfriendly369
      • 23. Résumé371
      • Chapitre 1-8
      • Aller plus loin avec le langage Python et la POO
      • 1. Introduction373
      • 2. Quelques concepts objet essentiels373
      • 2.1 Le polymorphisme373
      • 2.2 L'héritage multiple374
      • 2.3 Le singleton377
      • 2.4 La fabrique d'objets379
      • 2.5 La fermeture, ou closure en anglais381
      • 3. Les méthodes spéciales d'instances383
      • 3.1 Les fonctions spéciales classiques384
      • 3.2 La surcharge des opérateurs389
      • 4. Le gestionnaire de contexte (with) enter , exit392
      • 5. Les objets mutables et non mutables394
      • 5.1 Les mutables395
      • 5.2 Les non mutables396
      • 6. Quelques informations supplémentaires sur les classes en Python399
      • 6.1 Les attributs implicites399
      • 6.2 Les fonctions et classes incluses401
      • 6.3 Les attributs statiques et méthodes statiques403
      • 6.4 Les slots pour les performances405
      • 7. Les docstrings - chaînes de documentation406
      • 7.1 Définition406
      • 7.2 Usage407
      • 7.3 Génération de documentation410
      • 7.4 Tests412
      • 8. Les décorateurs413
      • 9. Les dataclasses416
      • 10. La structure conditionnelle match...case et les classes419
      • 11. Les itérateurs, générateurs et autres expressions génératrices426
      • 11.1 Les itérateurs426
      • 11.2 Les générateurs430
      • 12. Gérer ses propres exceptions432
      • 13. Les fonctions natives434
      • 13.1 Les fonctions natives inclassables434
      • 13.2 Les fonctions natives binaires436
      • 13.3 Les fonctions natives de conversion ou de création de type436
      • 13.4 Les fonctions natives sur les itérables437
      • 13.5 Les fonctions natives sur les numériques438
      • 13.6 Les fonctions natives sur les objets439
      • 14. Résumé442
      • Partie 2 : Pratiquer
      • Chapitre 2-1
      • Python et le Cloud
      • 1. Python et l'informatique en Nuage (« Cloud Computing »)443
      • 1.1 Introduction « Bonus » par ChatGPT443
      • 1.2 Introduction445
      • 2. AWS et Python446
      • 3. Les bonnes pratiques avec Amazon Web Services447
      • 3.1 Les prérequis448
      • 3.1.1 Un moyen de paiement448
      • 3.1.2 Git448
      • 3.1.3 De multiples adresses mail448
      • 3.2 Quelques notions et termes449
      • 3.3 Mise en place d'un environnement AWS451
      • 3.4 La console451
      • 3.5 Le VPC par défaut456
      • 3.6 Une première instance457
      • 4. AWS Lambda et Python460
      • 4.1 Définition des autorisations460
      • 4.2 AWS Lambda, premiers pas462
      • 4.3 Insertion de code personnalisé463
      • 4.4 Erreur : que se passe-t-il ?463
      • 4.5 Modification des autorisations464
      • 4.6 Tester à nouveau464
      • 4.7 Pour aller plus loin avec les fonctions Lambda464
      • 5. AWS et Python465
      • 5.1 AWS boto3 Ligne de commande, premiers pas466
      • 5.2 Utilisation des objets de la librairie boto3469
      • 5.3 Conclusion475
      • Chapitre 2-2
      • Récupérer des infos sur le système
      • 1. Introduction477
      • 2. psutil : récupérer des informations sur le système478
      • 3. Des informations sur les composants480
      • 3.1 Les processeurs480
      • 3.2 La mémoire482
      • 3.3 Les périphériques de stockage485
      • 3.4 Le réseau486
      • 4. Capteurs et autres informations490
      • 4.1 Les capteurs490
      • 4.2 Autres informations491
      • 4.2.1 Boot time491
      • 4.2.2 Les utilisateurs492
      • 5. Des informations sur les processus492
      • 5.1 Classe Objet et méthodes fournies par psutil492
      • 5.2 Principes d'utilisation496
      • 5.3 Exemples d'utilisation498
      • 6. Résumé502
      • Chapitre 2-3
      • Les formats de fichiers populaires
      • 1. Introduction503
      • 2. Le format de fichier « INI »503
      • 3. Comma Separated Values : CSV508
      • 4. MS Office511
      • 5. Le module odfpy513
      • 5.1 Document Texte514
      • 5.2 Document Feuille de calcul517
      • 6. Le module multi-format pyexcel520
      • 7. Le format de fichier JSON523
      • 8. Le format de fichier XML525
      • 9. Le module tarfile pour archives tar531
      • 10. Le format zip534
      • 11. Résumé536
      • Chapitre 2-4
      • Manipulation de données
      • 1. Introduction537
      • 2. SQLite en mémoire538
      • 2.1 La mission538
      • 2.2 La récupération des données539
      • 2.3 La définition de la base de données541
      • 2.4 Le script principal543
      • 3. SMS vers HTML (ou autre)546
      • 3.1 Extraction des SMS547
      • 3.2 Transformation des SMS547
      • 3.3 Conversion553
      • 3.4 Script554
      • 4. D'une base à l'autre556
      • 4.1 Le contexte556
      • 4.2 Les schémas557
      • 4.3 Le script principal560
      • 5. Résumé566
      • Chapitre 2-5
      • La génération de rapports
      • 1. Introduction569
      • 2. La génération de PDF : Reportlab569
      • 2.1 Hello World en PDF et Reportlab570
      • 2.2 Une table avec Reportlab571
      • 2.3 Encore une table, mais en mieux576
      • 3. Le moteur de patrons Jinja2581
      • 3.1 Jinja et le HTML582
      • 3.2 Ajoutons un peu de CSS (Cascading Style Sheet)587
      • 3.3 Autre cas d'utilisation590
      • 4. Un autre moteur de patron : Pug/Jade595
      • 4.1 Prérequis : installation de Pug597
      • 4.2 Le début du projet597
      • 4.3 Bootstrap, c'est bien598
      • 4.4 Make, c'est bien603
      • 5. Résumé606
      • Chapitre 2-6
      • Simulation d'activité
      • 1. Introduction607
      • 2. Description608
      • 3. La structure des données609
      • 4. L'initialisation de la base de données612
      • 4.1 définitions.py612
      • 4.2 populate.py617
      • 5. La connexion à la base de données628
      • 6. Les compteurs629
      • 7. Les commandes clients631
      • 8. La livraison des commandes clients634
      • 9. La facturation des commandes livrées636
      • 10. Le réapprovisionnement du stock638
      • 11. La réception des commandes fournisseurs642
      • 12. Utilisation644
      • 13. Résumé647
      • Partie 3 : Progresser
      • Chapitre 3-1
      • Trucs et astuces
      • 1. Introduction649
      • 2. Adapter le copier/coller d'un tableur pour un wiki650
      • 3. Déballage avec Python (unpacking)652
      • 4. L'underscore et Python654
      • 4.1 Dans l'interpréteur654
      • 4.2 Pour ignorer des valeurs654
      • 4.3 Dans les boucles655
      • 4.4 Pour la séparation des milliers655
      • 4.5 Pour le nommage des variables656
      • 5. Agacer les CPU et mesurer le temps de son code656
      • 6. Créer un décorateur (logger interne)660
      • 7. Bien écrire du code Python (PEP8)661
      • 7.1 Espaces663
      • 7.2 Lignes663
      • 7.3 Tabs et encoding664
      • 7.4 Encoding : UTF8664
      • 7.5 Docstring664
      • 7.6 Nom de variables664
      • 8. Résumé665
      • Chapitre 3-2
      • Exemples
      • 1. Introduction667
      • 2. Génération de fichiers et répertoires aléatoire668
      • 3. Graphique d'utilisation d'un serveur sur un mois671
      • 4. psutil analyse des informations des processus676
      • 5. Test continu de débit sur un accès Internet684
      • 6. Évolution de l'espace disque694
      • 7. Exécution de requête SQL sur un serveur distant700
      • 8. Améliorer Apache Index Of712
      • 8.1 WSGI714
      • 8.2 Analyse des besoins716
      • 8.3 Botile717
      • 8.4 Uwsgi - Comment se faire un environnement de test & dev ?718
      • 8.5 Le script startup.py718
      • 8.6 Le script page_html.py720
      • 8.7 Les templates724
      • 8.8 Les fichiers de paramètres727
      • 8.9 La mise en exploitation730
      • 8.10 Le résultat731
      • 9. Résumé732
      • Chapitre 3-3
      • Aller plus loin avec Pyihon
      • 1. Introduction733
      • 2. Bottle & Flask734
      • 2.1 Bottle734
      • 2.2 Flask -735
      • 3. Outils735
      • 3.1 Watchdog735
      • 3.2 Paramiko736
      • 3.3 Supervisor737
      • 4. Interfaces utilisateurs739
      • 4.1 Interface graphique : Tkinter739
      • 4.2 Autres interfaces graphiques741
      • 4.3 Interface console : curses742
      • 4.4 Interface console : Urwid742
      • 5. Résumé743
      • Chapitre 3-4
      • Pour aller encore plus loin
      • 1. Introduction745
      • 2. Twisted745
      • 3. Brython747
      • 4. Fuse748
      • 5. Ipython et Jupyter749
      • 6. Sphynx752
      • 7. Ansible756
      • 8. Le framework Django759
      • 9. Apache Airflow761
      • 10. Résumé764
      • Chapitre 3-5
      • Annexes
      • 1. Ressources Python765
      • 2. Déboguer en Python768
      • 3. Compiler Python depuis les sources771
      • 4. Pourquoi être fan des expressions régulières ?773
      • 5. Les outils utilisés pour cet ouvrage776
      • 6. Création d'une machine virtuelle Debian782
      • 7. Quelques conseils et petites choses à méditer815
      • 8. La dernière section818
      • Index819

  • Origine de la notice:
    • BPI
  • Disponible - A partir du 25 août 2025 - 681.234 BON