Python 운영 체제 및 시스템

PythonBeginner
지금 연습하기

소개

Python 운영 체제 및 시스템 랩에 오신 것을 환영합니다. 이곳에서 여러분은 우주 식민지의 미래적인 시나리오로 이동하게 됩니다. 이 발전된 시대에 지구는 화성에 번성하는 우주 정착지인 아레스 아웃포스트 (Ares Outpost) 를 건설했습니다. 여러분의 역할은 사이버 농부, 즉 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 의 중요성을 강조하고 초보자를 위한 매력적인 학습 경험을 제공하고자 했습니다. 학습자가 이러한 시나리오를 작동하는 코드로 변환하는 것을 보면서 성취감을 느낄 수 있었습니다.