Alura > Cursos de DevOps > Cursos de Linux > Conteúdos de Linux > Primeiras aulas do curso Linux: criando script para processamento de arquivos de logs

Linux: criando script para processamento de arquivos de logs

Configurando scripts e permissões de arquivos - Apresentação

Olá! Boas-vindas a este curso de Linux!

Apresentação

Meu nome é Gabi Ribeiro e serei a instrutora deste curso.

Audiodescrição: Gabi é uma mulher parda, com cabelo rosa. Atrás dela, há uma parede iluminada com as cores vermelho e azul.

Sobre o curso

Se você tem interesse em utilizar o Linux no seu dia a dia como pessoa desenvolvedora ou DevOps, este curso é para você.

Neste curso, nós vamos aprender a criar scripts no Linux e gerenciar permissões e grupos. Também aprenderemos a realizar buscas, usar filtros em arquivos, ordenar, remover duplicatas e comparar informações de arquivos. Além disso, vamos extrair dados de arquivos de texto utilizando a contagem de letras e palavras, e concatenar arquivos.

Por fim, aprenderemos a compactar e descompactar arquivos e a realizar o agendamento de tarefas no Linux. Estudaremos tudo isso através da criação de um script que realizará o processamento de arquivos de logs de uma aplicação.

Para aproveitar melhor o conteúdo deste curso, é muito importante que você tenha concluído o curso anterior desta formação.

Não se esqueça de aproveitar os recursos da plataforma. Além dos vídeos, nós temos as atividades, o apoio do fórum e da comunidade do Discord.

Bons estudos e até o próximo vídeo.

Configurando scripts e permissões de arquivos - Criando um script no Linux

Nós temos os arquivos de log de uma aplicação, que trazem registros importantes sobre atividades, erros e eventos que ocorrem dentro da nossa aplicação.

Esses arquivos foram disponibilizados na atividade de preparação do ambiente, com o passo a passo de como baixá-los e salvá-los no diretório correto em nosso computador.

Processamento de logs

Como os arquivos de log contêm informações relevantes sobre o estado e a saúde da aplicação, é interessante monitorá-los. No Linux, existem comandos úteis para processar esses logs, extraindo informações como erros e dados sensíveis que possam ter vazado, permitindo solucionar problemas na aplicação.

Esse processamento de logs segue uma série de instruções e comandos repetitivos. Em vez de digitar esses comandos manualmente no terminal toda vez que quisermos processar um arquivo de log, podemos consumir essas instruções de forma automática.

No Linux, há um recurso interessante para isso: os scripts. Vamos criar um script para monitorar nossos logs.

Criando um script

Com o terminal do WSL aberto, primeiramente, criaremos uma pasta para armazenar nosso script. Executamos o seguinte comando:

mkdir scripts-linux

Em seguida, vamos entra na pasta, com o seguinte comando:

cd scripts-linux

Precisamos de um editor de texto para criar o script.

No curso anterior, aprendemos a usar o Nano no Linux, mas ele não é a única opção disponível. É interessante conhecer diversos editores de texto, pois cada um possui recursos diferentes, pontos positivos e negativos dependendo da situação.

Caso não haja um motivo específico para usar determinado editor, podemos escolher de acordo com nossas preferências. Neste curso, utilizaremos o Vim, outro editor de texto disponível nos sistemas Linux.

Para criar um arquivo e nosso script com o Vim, digitamos no terminal o comando vim seguido do nome do arquivo, que será nosso script. A .sh indicará que se trata de um script Bash, um script de Shell do Linux:

vim monitoramento-logs.sh

Para abrir o editor de texto e criar o arquivo, basta pressionar a tecla "Enter". O arquivo vazio será aberto.

Para habilitar a edição de texto no Vim, pressionamos a tecla "I" do teclado, entrando no modo de inserção (insert mode), indicado pela palavra "INSERT" na parte inferior esquerda do editor.

Um script é um tipo de código. Utilizaremos o script do tipo Bash, que oferece funcionalidades básicas de programação e suporte a comandos Linux executados no terminal.

Um script Bash possui uma estrutura. Além da extensão .sh, precisamos especificar algumas informações para indicar que se trata de um script.

A primeira linha que adicionamos é chamada de shebang, começando com #!, seguido do caminho para o interpretador que executará o código. Como é um script Bash, utilizaremos o Bash como interpretador, logo:

#!/bin/bash

Os scripts podem ser escritos em diversas linguagens, como Python. Dependendo da linguagem escolhida, muda-se o caminho para o interpretador utilizado.

Agora que configuramos o necessário, podemos pular uma linha e começar a escrever nosso script e adicionar funcionalidades para processar e monitorar os arquivos de log.

Escrevendo o script

A primeira ação no script é criar uma variável que armazenará o diretório onde estão nossos logs. Uma variável é um recurso no código para armazenar informações. Neste caso, o diretório de logs.

A variável será chamada LOG_DIR. Para atribuir um valor, usamos o sinal de igual. O valor deve ser escrito entre aspas duplas:

LOG_DIR=" "

Começamos o caminho com .., que indica que vamos sair da pasta atual. Em seguida, /my_app/logs, que é a pasta criada na atividade de preparação do ambiente:

LOG_DIR="../myapp/logs"

As aspas duplas são opcionais ao atribuir valores a uma variável, mas é uma boa prática usá-las para evitar problemas com caracteres especiais.

Outra funcionalidade do script é exibir uma mensagem na tela. Para isso, usamos o comando echo do Linux, que nos permite escrever uma mensagem entre aspas duplas.

Vamos escrever "Verificando logs no diretório" e, em seguida, queremos indicar qual é esse diretório. Como já temos o diretório salvo na variável LOG_DIR, utilizaremos o valor armazenado nela. No script Bash, chamamos a variável usando o sinal de dólar ($) seguido do nome da variável, portanto:

echo "Verificando logs no diretorio $LOG_DIR"

Assim, essa mensagem será exibida na tela, quando o script for executado.

Para salvar as alterações no arquivo usando o Vim, é preciso sair do modo de inserção pressionando a tecla "Esc". Assim, entramos no modo de comando.

Agora, ao digitar, o texto aparecerá no canto inferior esquerdo, onde antes estava escrito "INSERT". Para salvar, digitamos :w e pressionamos "Enter".

A letra W vem da palavra "write", que significa "escrever" em inglês.

A mensagem "written" indica que as alterações foram salvas. Para sair do editor de texto, digitamos :q e pressionamos Enter, retornando ao terminal do Linux.

A letra Q vem da palavra "quit", que significa "sair" em inglês.

Já entendemos o que é um script e criamos as primeiras linhas de código. Na sequência, aprenderemos como executar nosso script.

Configurando scripts e permissões de arquivos - Gerenciando permissões

Já criamos nosso script com a estrutura inicial e agora queremos executá-lo para verificar se está tudo funcionando conforme o esperado. Porém, no Linux, sempre que desejamos executar um script Bash pela primeira vez, precisamos conceder permissão de execução para ele.

Gerenciando permissões

Com o terminal aberto na pasta onde está o script, vamos rodar o seguinte comando:

chmod 755 monitoramento-logs.sh

Após pressionar "Enter", já teremos aplicado a permissão de execução.

O comando chmod no Linux é utilizado para gerenciar permissões, adicionando ou removendo permissões em arquivos e diretórios. Mas o que significam os números que utilizamos? Como sabemos quais números usar para adicionar e remover essas permissões? Vamos entender em detalhes como funciona essa gestão de permissões no Linux.

Tipos de permissões

É importante compreender esses detalhes de gerenciamento de permissões, pois são fundamentais para a segurança e administração do sistema. Existem diferentes tipos de permissões que podemos conceder ou retirar de arquivos e diretórios.

A primeira é a permissão de leitura, representada pela letra r (read, em inglês), que permite acessar o conteúdo de um arquivo ou listar arquivos de um diretório.

A segunda é a permissão de escrita, representada pela letra w (de write, em inglês), que permite modificar arquivos ou o conteúdo de um diretório.

Por fim, temos a permissão de execução, representada pela letra x (de execute, em inglês), que permite executar códigos, scripts e acessar diretórios.

Classes de usuário

Além das permissões, existem classes de usuários no Linux.

A primeira classe é o proprietário, representado pela letra u, que é o dono do arquivo. No nosso script, somos os proprietários.

Em seguida, temos o grupo, representado pela letra g, que é um grupo de usuários que não são os donos do arquivo, mas podem ter acesso a ele. Por exemplo, em uma instituição, é interessante que o time de desenvolvimento tenha acesso ao script. Então, podemos colocar essas pessoas em um grupo e conceder acesso ao grupo.

Por fim, temos outros, representados pela letra o, que são todos os usuários que não são nem o proprietário, nem parte de um grupo. Trata-se de pessoas de outros times que não estão trabalhando diretamente no projeto de processamento de logs.

Existe também a representação de todos os usuários, indicada pela letra a, que engloba proprietário, grupo e outros.

Notação Octal

Quando escrevemos o comando chmod 755, utilizamos uma notação octal para representar as permissões. Essa notação usa números para indicar o tipo de permissão que estamos aplicando ou removendo.

Cada permissão tem um valor diferente:

E o que significa o valor 755? Vamos entender por partes, a seguir.

Cada um desses três algarismos representa uma classe de usuários. O primeiro indica as permissões para a classe de usuário proprietário. O segundo para a classe grupo. O terceiro para outros.

Para chegar ao 7, somamos os valores das permissões. O proprietário tem permissão de leitura (4), gravação (2) e execução (1). Logo, 4 + 2 + 1 será 7.

Para o grupo e outros, que têm apenas permissão de leitura e execução, somamos apenas 4 + 1, resultando em 5. Assim, chegamos ao número 755, do chmod 755.

Notação simbólica

Além da notação octal, podemos usar a notação simbólica no chmod, que utiliza letras e símbolos para representar operações e usuários:

Por exemplo: chmod u+x arquivo.sh. A letra u indica o usuário proprietário. O símbolo de + adiciona uma permissão. A letra x representa a permissão de execução. Em outras palavras, estamos atribuindo a permissão de execução para o proprietário do arquivo arquivo.sh.

Outro exemplo: chmod g-w arquivo.sh. A letra g indica o grupo. O operador - remove uma permissão. O w representa a permissão de gravação. Ou seja, removemos a permissão de gravação do grupo.

Como seria o chmod 755 na notação simbólica? Poderíamos usar o chmod +x Como estamos atribuindo a permissão de execução para todas as classes, podemos emitir a primeira informação, apenas colocando o operador de + e o x, de execução.

Para escolher entre notação octal e simbólica, é interessante considerar alguns aspectos. Por exemplo, a facilidade de uso. A notação octal é mais compacta e simples, enquanto a simbólica é mais específica.

Outro aspecto a se considerar, é o escopo de modificação. Na notação octal, atribuímos permissões para todas as classes, enquanto a notação simbólica permite mais especificidade ao adicionar ou remover permissões.

Há uma atividade "Para saber mais" sobre as notações para você explorar mais o assunto.

Verificando permissões

Para limpar a tela do terminal, usa-se "Ctrl + L".

Para verificar as permissões de um arquivo, usamos o comando ls -l, que lista os arquivos e suas permissões:

ls -l

No início da linha, caracteres indicam o tipo de arquivo e suas permissões. No nosso caso, temos:

-rwxr-xr-x

O primeiro traço indica um arquivo regular. Caso fosse um diretório, seria a letra "d".

Os três primeiros dígitos representam as permissões do proprietário: r de leitura, w de escrita e x de execução.

Os três seguintes indicam permissões do grupo: r de leitura, um traço no lugar do w porque não há permissão de escrita, e o x de execução. Os últimos são as permissões de outros usuários, que são iguais ao anterior.

Em seguida, temos o nome do proprietário e o grupo atribuído ao arquivo.

Executando o script

Agora que entendemos a gestão de permissões, podemos executar nosso script. Basta executar o seguinte comando:

./monitoramento-logs.sh

Dessa forma, veremos na tela a seguinte mensagem:

Verificando logs no diretorio ../myapps/logs

A saída na tela, gerada pelo comando echo, confirma que o script está verificando logs no diretório especificado.

Aprendemos a gerenciar permissões e executar scripts. Na sequência, vamos entender como gerenciar grupos.

Sobre o curso Linux: criando script para processamento de arquivos de logs

O curso Linux: criando script para processamento de arquivos de logs possui 176 minutos de vídeos, em um total de 64 atividades. Gostou? Conheça nossos outros cursos de Linux em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Linux acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas