소개
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 의 중요성을 강조하고 초보자를 위한 매력적인 학습 경험을 제공하고자 했습니다. 학습자가 이러한 시나리오를 작동하는 코드로 변환하는 것을 보면서 성취감을 느낄 수 있었습니다.



