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.
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.
Résumé
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.



