Python オペレーティングシステムとシステム管理

PythonPythonBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Python オペレーティングシステムとシステム実験にようこそ。ここでは、宇宙植民地の未来的なシナリオにあなたを運び込みます。この高度な時代において、地球は火星に繁栄する宇宙定住地「アレス前哨基地」を確立しています。あなたの役割は、宇宙植民地の自動化された農業システムを Python を使って管理することが重要な、先駆的なサイバー農家です。

この実験の目的は、オペレーティングシステムと相互作用して農業機械とその基盤となるインフラストラクチャソフトウェアの円滑な機能を保証する、堅牢な Python スクリプトを作成することです。あなたは、植民地の維持に不可欠なファイル操作、データ ロギング、システム自動化などのタスクを遂行します。シナリオを魅力的にする一方で、現実世界の目標を達成するために Python をオペレーティングシステムと統合する重要性を理解しましょう。


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{{"Python オペレーティングシステムとシステム管理"}} end

環境設定

このステップでは、サイバー農業操作の基盤となるプロジェクト環境を設定します。効率的なワークフローを維持するために、ディレクトリ構造を整えることが重要です。

すべての農業機械インターフェイスがオンラインであるかどうかを確認する ~/project/farm_operations/environment_check.py という名前の Python スクリプトを開きます。以下は基本テンプレートです:

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()

ターミナルからスクリプトを実行します:

python3 environment_check.py

以下のような機械インターフェイスがチェックされていることを示す出力が表示されるはずです:

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

システムモニタリング

インターフェイスを確認した後は、操作に支障がないようにシステムのパフォーマンスをモニタリングすることが重要です。このために、重要なシステムメトリックをログに記録して、すべてが最適に動作することを確認します。

farm_operations 内の system_monitor.py という名前の Python スクリプトを開きます:

import os

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

if __name__ == "__main__":
    system_monitor()

このスクリプトは、top コマンドをバッチモードで実行してシステムメトリックを収集し、system_metrics.log という名前のログファイルにリダイレクトします。スクリプトを実行します:

$ python3 system_monitor.py
Recording system metrics...

system_metrics.log の内容を確認して、システムデータの正常なログ記録を確認します:

$ 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

ターミナル内で top コマンドと同様の出力が表示されます。

まとめ

この実験では、Python の os_system モジュールが宇宙植民地の農業操作の管理において重要な役割を果たすシナリオを通じて学びました。環境設定からシステムモニタリングまで、この実験はオペレーティングシステムと操作して相互作用するスクリプトを作成する際の実践的なスキルを習得することを目的としています。この実験を全体的にデザインすることで、私は現実世界のアプリケーションにおける Python の重要性を強調し、初心者に魅力的な学習体験を提供することを目指しました。学習者がこれらのシナリオを機能するコードに変換するのを目撃することは、達成感をもたらします。