Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Finalizando o projeto shell scripting 'processos_memoria'

Código do último projeto.

#!/bin/bash

<<INTRO
    Script para identificar e organizar 10 processos que estão a consumir mais a memória do sistema.
    O comando-chave será o 'ps', integrados com outros comandos.
    'bc' para operações matemáticas e 'date' para formtação de data e hora.
INTRO

if [ ! -d log_files ]
then
    mkdir log_files
fi

processos_memoria(){
processos=$(ps -e -o pid --sort -size | head -n 11 | grep [0-9])
for pid in $processos
do
    nome_processo=$(ps -p $pid -o comm=)
    echo -n $(date +%F,%H:%M:%S,)>> log_files/$nome_processo.log
    tamanho_processo=$(ps -p $pid -o size | grep [0-9])
    echo "$(bc <<< "scale=2;$tamanho_processo/1024 ") MB" >> log_files/$nome_processo.log
done
}
processos_memoria
if [ $? -eq 0 ]
then
    echo "Arquivos log salvos com sucesso."
else
    echo "Houve alguma falha no processo."
fi
2 respostas

Mandou bem Eliezer! Dá pra ir além como no programa das imagens, um exemplo seria: como eu posso deixar o tamanho dos processos monitorados de forma dinâmica para que eu possa executar o programa e dizer pra ele que agora quero um relatório dos processos que estão consumindo 2Mb por exemplo.

solução!

Obrigado pelo feedback.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software