1
resposta

[Projeto] Faça como eu fiz: obtendo informações de hardware do sistema

Execute o comando free em seu terminal, filtrando a linha sobre o uso de memória e formatando sua saída;

root@E091732:/script-linux# free -h
               total        used        free      shared  buff/cache   available
Mem:           7.6Gi       667Mi       6.9Gi       4.0Mi       259Mi       7.0Gi
Swap:          2.0Gi          0B       2.0Gi
root@E091732:/script-linux#

Crie uma função em seu script de monitorar hardware e adicione a funcionalidade de monitorar o uso de memória RAM, salvando a informação em um arquivo de relatório;

#!/bin/bash

LOG_DIR="../script-linux/teste_script"
DESTINO_DIR="/backup"
TAR_FILENAME="logs_$(date +%F_%T).tar.gz"

mkdir -p $LOG_DIR

function monitorar_hardware() {

echo "$(date)" >> $LOG_DIR/monitoramento_hardware.txt
free -h | grep -i Mem | awk '{print "Memória RAM Total: " $2, "Usada: " $3 ", Livre: " $4 }' >> $LOG_DIR/monitoramento_hardware.txt

}
monitorar_hardware

Rode o comando top em seu terminal para obter os dados de CPU. Lembre-se de filtrar e formatar a saída para obter o valor de porcentagem de uso de CPU.

root@E091732:/script-linux# top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print "Uso da CPU: " 100 - $1 "%"}'
Uso da CPU: 0.8%

Incorpore o comando usado na função de monitorar hardware, salvando as informações no arquivo de relatório;

#!/bin/bash

LOG_DIR="../script-linux/teste_script"
DESTINO_DIR="/backup"
TAR_FILENAME="logs_$(date +%F_%T).tar.gz"

mkdir -p $LOG_DIR

function monitorar_hardware() {

echo "$(date)" >> $LOG_DIR/monitoramento_hardware.txt
free -h | grep -i Mem | awk '{print "Memória RAM Total: " $2, "Usada: " $3 ", Livre: " $4 }' >> $LOG_DIR/monitoramento_hardware.txt
top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print "Uso da CPU: " 100 - $1 "%"}' >> $LOG_DIR/monitoramento_hardware.txt

}
monitorar_hardware

Rode o comando iostat em seu terminal para extrair dados de leitura e escrita nos dispositivos de armazenamento, formatando a saída do comando;

root@E091732:/script-linux# iostat | grep -E "Device |^sda|^sdb|^sdc" | awk '{print $1, $2, $3, $4}'
Device tps kB_read/s kB_wrtn/s
sda 0.02 1.26 0.00
sdb 0.00 0.12 0.00
sdc 0.00 0.03 0.00

Adicione o comando usado na função de monitorar hardware e salve as informações no relatório.

#!/bin/bash

LOG_DIR="../script-linux/teste_script"
DESTINO_DIR="/backup"
TAR_FILENAME="logs_$(date +%F_%T).tar.gz"

mkdir -p $LOG_DIR

function monitorar_hardware() {

echo "$(date)" >> $LOG_DIR/monitoramento_hardware.txt
free -h | grep -i Mem | awk '{print "Memória RAM Total: " $2, "Usada: " $3 ", Livre: " $4 }' >> $LOG_DIR/monitoramento_hardware.txt
iostat | grep -E "Device |^sda|^sdb|^sdc" | awk '{print $1, $2, $3, $4}' >> $LOG_DIR/monitoramento_hardware.txt

}
monitorar_hardware                                                                                                                                         >
1 resposta

Oi, Gabrielle! Como vai?

Agradeço por compartilhar.

Gostei de como você montou a função monitorar_hardware, usando free, top e iostat para registrar memória, CPU e disco no arquivo monitoramento_hardware.txt, mostra que você tá conectando bem os comandos com o objetivo do script. Continue explorando esses comandos, porque essa visão de monitoramento é muito útil no dia a dia com Linux.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!