Python и операционные системы

PythonBeginner
Практиковаться сейчас

Введение

Добро пожаловать в лабораторию по операционной системе и системам на Python, где мы перенесем вас в футуристическую сцену космической колонии. В этом передовых временах Земля создала процветающую космическую колонию на Марсе, называемую Ares Outpost. Вашей ролью является пионерный кибер-фермер, важный член колонии, ответственный за управление автоматическими сельскохозяйственными системами поста Ares Outpost с использованием Python.

Целью данной лабораторной работы является создание надежных скриптов на Python, которые взаимодействуют с операционной системой, чтобы обеспечить бесперебойную работу сельскохозяйственного оборудования и базового инфраструктурного программного обеспечения. Вы выполните такие задачи, как манипуляция файлами, ведение журнала данных и автоматизация системы, которые являются жизненно важными для существования колонии. Разберитесь в важности интеграции Python с операционной системой для достижения реальных целей, при этом сделав сценарий интересным.

Настройка окружения

В этом шаге вы настроите свою проектную среду, которая является основой для наших операций кибер-фермерства. Обязательно важно организовать структуру каталогов для поддержания эффективных рабочих процессов.

Откройте Python-скрипт с именем ~/project/farm_operations/environment_check.py, который проверит, подключены ли все интерфейсы сельскохозяйственного оборудования. Вот базовый шаблон:

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

Мониторинг системы

После проверки интерфейсов важно отслеживать производительность системы, чтобы предотвратить любые прерывания в работе. Для этого мы будем логировать важные метрики системы, чтобы убедиться, что все работает с максимальной эффективностью.

Откройте Python-скрипт с именем system_monitor.py внутри 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()

Этот скрипт запускает команду 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 в терминале.

Резюме

В этой лабораторной работе мы рассмотрели сценарий, в котором модуль os_system Python играл важную роль в управлении сельскохозяйственными операциями космической колонии. Начиная от настройки окружения и заканчивая мониторингом системы, цель лабораторной работы заключалась в получении практических навыков по созданию скриптов, которые манипулируют и взаимодействуют с операционной системой. Составляя лабораторную работу в целом, я акцентировал внимание на важности Python в реальных приложениях и хотел дать увлекательное обучение для начинающих. Свидетельствовать, как ученики преобразуют эти сценарии в работающий код, вызывает чувство удовлетворения и достижения.