Système d'exploitation Python et Système

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Bienvenue au Laboratoire d'Exploration du Système d'Exploitation et du Système avec Python, où nous allons vous transporter dans un scénario futuriste d'une colonie spatiale. Dans cette ère avancée, la Terre a établi un établissement spatial prospère sur Mars, connu sous le nom de Poste Ares. Votre rôle est celui d'un cyber - agriculteur pionnier, un membre crucial de la colonie responsable de la gestion des systèmes agricoles automatisés du poste à l'aide de Python.

L'objectif de ce laboratoire est de créer des scripts Python robustes qui interagissent avec le système d'exploitation pour assurer le bon fonctionnement des machines agricoles et du logiciel d'infrastructure sous - jacente. Vous accomplirez des tâches telles que la manipulation de fichiers, la journalisation de données et l'automatisation du système, qui sont vitales pour la subsistance de la colonie. Comprenez l'importance de l'intégration de Python avec le système d'exploitation pour atteindre des objectifs du monde réel tout en rendant le scénario captivant.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/PythonStandardLibraryGroup -.-> python/os_system("Operating System and System") subgraph Lab Skills python/os_system -.-> lab-271578{{"Système d'exploitation Python et Système"}} end

Configuration de l'environnement

Dans cette étape, vous allez configurer votre environnement de projet, qui forme la base de nos opérations de cyber - agriculture. Assurer que les structures de répertoires sont organisées est essentiel pour maintenir des flux de travail efficaces.

Ouvrez un script Python nommé ~/project/farm_operations/environment_check.py qui vérifiera si toutes les interfaces des machines agricoles sont en ligne. Voici un modèle de base :

import os

def check_interfaces():
    print("Checking machinery interfaces...")
    ## Exemple de vérification (En réalité, vous le remplaceriez par des vérifications spécifiques à votre système)
    os.system("ping -c 1 127.0.0.1")

if __name__ == "__main__":
    check_interfaces()

Exécutez votre script à partir du terminal :

python3 environment_check.py

Vous devriez voir des résultats indiquant que les interfaces des machines sont vérifiées, tels que :

Checking machinery interfaces...
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.018 ms

--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.018/0.018/0.018/0.000 ms

Surveillance du système

Après avoir vérifié les interfaces, il est essentiel de surveiller les performances du système pour éviter toute perturbation dans les opérations. Pour ce faire, nous allons enregistrer les métriques importantes du système pour nous assurer que tout fonctionne de manière optimale.

Ouvrez un script Python nommé system_monitor.py dans farm_operations :

import os

def system_monitor():
    print("Recording system metrics...")
    os.system("top -b -n 1 > system_metrics.log")

if __name__ == "__main__":
    system_monitor()

Ce script exécute la commande top en mode batch pour collecter les métriques du système et les redirige vers un fichier de journal nommé system_metrics.log. Exécutez le script :

$ python3 system_monitor.py
Recording system metrics...

Vérifiez le contenu de system_metrics.log pour confirmer l'enregistrement réussi des données du système :

$ cat system_metrics.log
top - 00:33:14 up 15 days, 14:22,  0 users,  load average: 0.04, 0.07, 0.10
Tasks:  16 total,   1 running,  15 sleeping,   0 stopped,   0 zombie
%Cpu(s):  6.2 us,  0.0 sy,  0.0 ni, 93.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7802.7 total,    585.3 free,   3936.1 used,   3281.4 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   3555.6 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    216 labex     20   0  657480  56304  38872 S   6.7   0.7   0:00.63 node
      1 root      20   0   11200   3780   3508 S   0.0   0.0   0:00.02 init.sh
     21 root      20   0   40812  27976  10540 S   0.0   0.4   0:00.22 supervisord
     22 root      20   0   15420   9396   7760 S   0.0   0.1   0:00.01 sshd
     23 labex     20   0    2632    972    880 S   0.0   0.0   0:00.00 dumb-init
     24 labex     20   0  721668  63708  38596 S   0.0   0.8   0:00.56 node
     41 labex     20   0  951088 106276  41152 S   0.0   1.3   0:06.74 node
    167 labex     20   0  994340 134536  41504 S   0.0   1.7   0:07.99 node
    189 labex     20   0  848976  51504  38352 S   0.0   0.6   0:00.18 node
    233 labex     20   0   14392   6488   4604 S   0.0   0.1   0:00.37 zsh
    403 labex     20   0  377336  70216  11228 S   0.0   0.9   0:02.21 python
    430 labex     20   0   38268  25560   9832 S   0.0   0.3   0:00.17 python
    435 labex     20   0   14396   6588   4652 S   0.0   0.1   0:00.17 zsh
    863 labex     20   0   21156   9408   6076 S   0.0   0.1   0:00.01 python
    864 labex     20   0   11200   3652   3388 S   0.0   0.0   0:00.00 sh
    865 labex     20   0   14176   3576   3220 R   0.0   0.0   0:00.00 top

Vous verrez une sortie similaire à la commande top dans le terminal.

Sommaire

Dans ce laboratoire, nous avons exploré un scénario dans lequel le module os_system de Python a joué un rôle crucial dans la gestion des opérations agricoles d'une colonie spatiale. En commençant par la configuration de l'environnement jusqu'à la surveillance du système, le laboratoire visait à transmettre des compétences pratiques dans la création de scripts qui manipulent et interagissent avec le système d'exploitation. En concevant globalement ce laboratoire, j'ai souligné l'importance de Python dans les applications du monde réel et visé à offrir une expérience d'apprentissage captivante pour les débutants. Le fait de voir les apprenants convertir ces scénarios en code fonctionnel procure un sentiment de réalisation très satisfaisant.