Python Betriebssystem und Systemverwaltung

PythonBeginner
Jetzt üben

Einführung

Willkommen im Python Betriebssystem und System Labor, in dem wir Sie in die zukunftsträchtige Szenerie eines Weltraumsiedlings transportieren. In diesem fortgeschrittenen Zeitalter hat die Erde auf dem Mars ein blühendes Weltraumsiedlung gegründet, das als Ares Outpost bekannt ist. Ihre Rolle ist die eines bahnbrechenden Cyberbauer, eines wichtigen Mitglieds der Kolonie, das für das Management der automatisierten landwirtschaftlichen Systeme des Outposts mit Python verantwortlich ist.

Ziel dieses Labors ist es, robuste Python-Skripte zu erstellen, die mit dem Betriebssystem interagieren, um die reibungslose Funktion von landwirtschaftlichen Maschinen und der zugrunde liegenden infrastrukturellen Software sicherzustellen. Sie werden Aufgaben wie Dateimanipulation, Datenprotokollierung und Systemautomatisierung erledigen, die für die Existenz der Kolonie von entscheidender Bedeutung sind. Verstehen Sie die Wichtigkeit der Integration von Python mit dem Betriebssystem, um reale Ziele zu erreichen, während Sie die Szenerie interessant gestalten.

Einrichten der Umgebung

In diesem Schritt werden Sie Ihre Projektumgebung einrichten, die die Grundlage für unsere Cyber-Bauern-Operationen bildet. Es ist essentiell, die Verzeichnisstrukturen zu organisieren, um effiziente Workflows aufrechtzuerhalten.

Öffnen Sie ein Python-Skript namens ~/project/farm_operations/environment_check.py, das überprüft, ob alle Schnittstellen der landwirtschaftlichen Maschinen online sind. Hier ist ein grundlegendes Template:

import os

def check_interfaces():
    print("Checking machinery interfaces...")
    ## Example check (In reality, you would replace this with checks specific to your system)
    os.system("ping -c 1 127.0.0.1")

if __name__ == "__main__":
    check_interfaces()

Führen Sie Ihr Skript aus der Kommandozeile aus:

python3 environment_check.py

Sie sollten Ausgabe sehen, die angibt, dass die Schnittstellen der Maschinen überprüft werden, wie z. B.:

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

Systemüberwachung

Nachdem Sie die Schnittstellen überprüft haben, ist es wichtig, die Leistung des Systems zu überwachen, um jegliche Störungen bei den Operationen zu vermeiden. Dazu werden wir wichtige Systemmetriken protokollieren, um sicherzustellen, dass alles optimal läuft.

Öffnen Sie ein Python-Skript namens system_monitor.py innerhalb von 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()

Dieses Skript führt den Befehl top im Batchmodus aus, um Systemmetriken zu sammeln und diese in eine Logdatei namens system_metrics.log umzuleiten. Führen Sie das Skript aus:

$ python3 system_monitor.py
Recording system metrics...

Überprüfen Sie den Inhalt von system_metrics.log, um die erfolgreiche Protokollierung von Systemdaten zu verifizieren:

$ 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

Sie werden eine Ausgabe sehen, die ähnlich der Ausgabe des top-Befehls im Terminal ist.

Zusammenfassung

In diesem Lab haben wir uns durch eine Szenerie geführt, in der das os_system-Modul von Python eine entscheidende Rolle bei der Verwaltung der landwirtschaftlichen Operationen eines Weltraumsiedlings spielte. Von der Einrichtung der Umgebung bis zur Systemüberwachung zielte das Lab darauf ab, praktische Kenntnisse in der Erstellung von Skripts zu vermitteln, die mit dem Betriebssystem interagieren und manipulieren. Durch die ganzheitliche Gestaltung dieses Labs habe ich die Wichtigkeit von Python in realen Anwendungen betont und angestrebt, einen ansprechenden Lernerfahrung für Einsteiger zu bieten. Das Zeugnis von Lernenden, die diese Szenarien in funktionierender Code umwandeln, bringt ein befriedigendes Erfolggefühl mit sich.