Introdução
Bem-vindo ao Laboratório de Sistema Operacional e Sistema Python, onde o transportaremos para o cenário futurista de uma colônia espacial. Nesta era avançada, a Terra estabeleceu um próspero assentamento espacial em Marte, conhecido como Ares Outpost. Seu papel é o de um cyber-agricultor pioneiro, um membro crucial da colônia responsável por gerenciar os sistemas agrícolas automatizados do posto avançado usando Python.
O objetivo deste laboratório é criar scripts Python robustos que interagem com o sistema operacional para garantir o bom funcionamento das máquinas agrícolas e do software de infraestrutura subjacente. Você realizará tarefas como manipulação de arquivos, registro de dados (data logging) e automação do sistema, que são vitais para a sustentação da colônia. Compreenda a importância de integrar Python com o sistema operacional para atingir objetivos do mundo real, tornando o cenário envolvente.
Configurando o Ambiente
Nesta etapa, você configurará o ambiente do seu projeto, que forma a base para nossas operações de cyber-agricultura. Garantir que as estruturas de diretórios estejam organizadas é essencial para manter fluxos de trabalho eficientes.
Abra um script Python chamado ~/project/farm_operations/environment_check.py, que verificará se todas as interfaces das máquinas agrícolas estão online. Aqui está um modelo básico:
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()
Execute seu script a partir do terminal:
python3 environment_check.py
Você deve ver uma saída indicando que as interfaces das máquinas estão sendo verificadas, como:
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
Monitoramento do Sistema
Após verificar as interfaces, é essencial monitorar o desempenho do sistema para evitar qualquer interrupção nas operações. Para isso, registraremos métricas importantes do sistema para garantir que tudo funcione de forma otimizada.
Abra um script Python chamado system_monitor.py dentro de 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()
Este script executa o comando top em modo batch para coletar métricas do sistema e redirecioná-las para um arquivo de log chamado system_metrics.log. Execute o script:
$ python3 system_monitor.py
Recording system metrics...
Verifique o conteúdo de system_metrics.log para verificar o registro bem-sucedido dos dados do sistema:
$ 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: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
Você verá uma saída semelhante ao comando top dentro do terminal.
Resumo
Neste laboratório, navegamos por um cenário onde o módulo os_system do Python desempenhou um papel crucial na administração das operações agrícolas de uma colônia espacial. Começando com a configuração do ambiente até o monitoramento do sistema, o laboratório teve como objetivo transmitir habilidades práticas na criação de scripts que manipulam e interagem com o sistema operacional. Ao projetar holisticamente este laboratório, enfatizei a importância do Python em aplicações do mundo real e procurei proporcionar uma experiência de aprendizado envolvente para iniciantes. Testemunhar os alunos convertendo esses cenários em código funcional traz uma sensação de realização gratificante.



