Introdução
Neste projeto, você aprenderá como obter e exibir informações do sistema em um servidor Linux. O script getinfo.sh que você criará pode ser usado para coletar rapidamente detalhes importantes sobre o hardware, software e configuração de rede do servidor.
👀 Pré-visualização
$ sh getinfo.sh
## Exemplo
cpu num: 8
memory total: 30 G
memory free: 10867 M
disk size: 20G
system bit: 64
process: 40
software num: 1389
ip: 1.32.X.X
🎯 Tarefas
Neste projeto, você aprenderá:
- Como obter o número de CPUs, memória total, memória disponível, tamanho do disco, bit do sistema, número de processos em execução, número de pacotes de software instalados e endereço IP do servidor.
- Como usar vários comandos e ferramentas Linux, como
grep,free,df,getconf,ps,dpkg-queryeip, para coletar informações do sistema. - Como escrever um script zsh que combina esses comandos para fornecer uma visão geral abrangente do estado do servidor.
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Entender como usar scripts de shell para automatizar a coleta de informações do sistema.
- Ganhar familiaridade com comandos Linux comumente usados e suas aplicações.
- Criar um script reutilizável que pode ser executado para obter e exibir rapidamente detalhes importantes do servidor.
- Aplicar seu novo conhecimento para monitorar e solucionar problemas de sistemas Linux de forma mais eficaz.
Criar o Script getinfo.sh
Nesta etapa, você criará o script getinfo.sh no diretório /home/labex/project.
Abra um editor de texto e crie um novo arquivo chamado
getinfo.shno diretório/home/labex/project.Adicione a seguinte linha shebang no início do arquivo:
#!/bin/zshEsta linha especifica que o script deve ser executado usando o shell zsh.
Adicione os seguintes comentários ao script:
## getinfo.sh - Linux System Information Script ## This script retrieves CPU, memory, disk, and other information of a Linux server.Esses comentários fornecem uma breve descrição do propósito do script.
Salve o arquivo.
Recuperar Informações da CPU
Nesta etapa, você adicionará uma função ao script getinfo.sh para obter o número de CPUs.
Abra o script
getinfo.shem um editor de texto.Adicione a seguinte função ao script:
## Function: Retrieve CPU information cpu_num=$(grep -c '^processor' /proc/cpuinfo)Esta função usa o comando
greppara contar o número de entradas de processador no arquivo/proc/cpuinfo, que representa o número de CPUs.Salve as alterações no script.
Recuperar Informações da Memória
Nesta etapa, você adicionará funções ao script getinfo.sh para obter o tamanho total da memória e o tamanho da memória disponível.
Abra o script
getinfo.shem um editor de texto.Adicione as seguintes funções ao script:
## Function: Retrieve total memory size (in GB) memory_total=$(free -g | awk '/^Mem:/ {print $2}') ## Function: Retrieve available memory size (in MB) memory_free=$(free -m | awk '/^Mem:/ {print $4}')A primeira função usa o comando
freecom a opção-gpara obter o tamanho total da memória em gigabytes. A segunda função usa o comandofreecom a opção-mpara obter o tamanho da memória disponível em megabytes.Salve as alterações no script.
Recuperar Informações do Disco
Nesta etapa, você adicionará uma função ao script getinfo.sh para obter o tamanho total do sistema de arquivos montado no diretório raiz.
Abra o script
getinfo.shem um editor de texto.Adicione a seguinte função ao script:
## Function: Retrieve total disk size of the root filesystem (in GB) disk_size=$(df -h / | awk '/\// {print $2}')Esta função usa o comando
dfcom a opção-hpara obter o tamanho total do sistema de arquivos montado no diretório raiz (/), e então extrai o valor do tamanho usandoawk.Salve as alterações no script.
Recuperar Informações de Bits do Sistema
Nesta etapa, você adicionará uma função ao script getinfo.sh para obter as informações de bits do sistema.
Abra o script
getinfo.shem um editor de texto.Adicione a seguinte função ao script:
## Function: Retrieve system bit system_bit=$(getconf LONG_BIT)Esta função usa o comando
getconfpara obter o número de bits usados pelo sistema.Salve as alterações no script.
Recuperar Informações do Processo
Nesta etapa, você adicionará uma função ao script getinfo.sh para obter o número de processos em execução no momento.
Abra o script
getinfo.shem um editor de texto.Adicione a seguinte função ao script:
## Function: Retrieve the number of currently running processes process=$(ps -ef | wc -l)Esta função usa o comando
pspara listar todos os processos em execução e, em seguida, conta o número de linhas usando o comandowc.Salve as alterações no script.
Recuperar Informações do Software
Nesta etapa, você adicionará uma função ao script getinfo.sh para obter o número de pacotes de software instalados.
Abra o script
getinfo.shem um editor de texto.Adicione a seguinte função ao script:
## Function: Retrieve the number of installed software packages software_num=$(dpkg-query -f '${binary:Package}\n' -W | wc -l)Esta função usa o comando
dpkg-querypara listar todos os pacotes de software instalados e, em seguida, conta o número de linhas usando o comandowc.Salve as alterações no script.
Recuperar Informações do Endereço IP
Nesta etapa, você adicionará uma função ao script getinfo.sh para obter o endereço IP da interface de rede eth0.
Abra o script
getinfo.shem um editor de texto.Adicione a seguinte função ao script:
## Function: Retrieve the IP address of eth0 ip=$(ip addr show eth0 | awk '/inet / {print $2}' | sed 's|/.*||')Esta função usa o comando
ippara obter o endereço IP da interface de rede eth0 e, em seguida, extrai o endereço IP usandoawkesed.Salve as alterações no script.
Exibir as Informações do Sistema
Nesta etapa final, você adicionará a seção de saída ao script getinfo.sh para exibir as informações do sistema.
Abra o script
getinfo.shem um editor de texto.Adicione a seguinte seção de saída ao script:
## Output information echo "cpu num: $cpu_num" echo "memory total: $memory_total G" echo "memory free: $memory_free M" echo "disk size: $disk_size" echo "system bit: $system_bit" echo "process: $((process - 1))" echo "software num: $software_num" echo "ip: $ip"Esta seção usa o comando
echopara imprimir as informações do sistema no formato exigido.Salve as alterações no script.
Parabéns! Você concluiu o script getinfo.sh. Você pode executar o script executando o seguinte comando no terminal:
sh getinfo.sh
O script exibirá as informações do sistema conforme especificado nos requisitos do projeto.
## Example
cpu num: 8
memory total: 30 G
memory free: 10867 M
disk size: 20G
system bit: 64
process: 40
software num: 1389
ip: 1.32.X.X
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



