はじめに
Python オペレーティングシステムとシステム実験にようこそ。ここでは、宇宙植民地の未来的なシナリオにあなたを運び込みます。この高度な時代において、地球は火星に繁栄する宇宙定住地「アレス前哨基地」を確立しています。あなたの役割は、宇宙植民地の自動化された農業システムを Python を使って管理することが重要な、先駆的なサイバー農家です。
この実験の目的は、オペレーティングシステムと相互作用して農業機械とその基盤となるインフラストラクチャソフトウェアの円滑な機能を保証する、堅牢な Python スクリプトを作成することです。あなたは、植民地の維持に不可欠なファイル操作、データ ロギング、システム自動化などのタスクを遂行します。シナリオを魅力的にする一方で、現実世界の目標を達成するために Python をオペレーティングシステムと統合する重要性を理解しましょう。
環境設定
このステップでは、サイバー農業操作の基盤となるプロジェクト環境を設定します。効率的なワークフローを維持するために、ディレクトリ構造を整えることが重要です。
すべての農業機械インターフェイスがオンラインであるかどうかを確認する ~/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 の重要性を強調し、初心者に魅力的な学習体験を提供することを目指しました。学習者がこれらのシナリオを機能するコードに変換するのを目撃することは、達成感をもたらします。



