Neste artigo, vamos revisar como instalar, atualizar e remover pacotes no Red Hat Enterprise Linux 7. Também abordaremos como automatizar tarefas usando cron e finalizaremos este guia explicando como localizar e interpretar arquivos de log do sistema, com foco em ensinar por que todas essas habilidades são essenciais para todo administrador de sistemas.

Gerenciando Pacotes Via Yum
Para instalar um pacote juntamente com todas as suas dependências que ainda não estão instaladas, você usará:
# yum -y install package_name(s)
Onde nome_do_pacote(s) representa pelo menos um nome de pacote real.
Por exemplo, para instalar httpd e mlocate (nessa ordem), digite:
# yum -y install httpd mlocate
Nota: A letra y no exemplo acima ignora as solicitações de confirmação que o yum apresenta antes de realizar o download e a instalação dos programas solicitados. Você pode deixá-la de fora, se quiser.
Por padrão, o yum instalará o pacote com a arquitetura que corresponde à arquitetura do sistema operacional, a menos que seja substituída pela adição da arquitetura do pacote ao seu nome.
Por exemplo, em um sistema 64 bits, yum install pacote instalará a versão x86_64 do pacote, enquanto yum install pacote.x86 (se disponível) instalará a versão 32 bits.
Haverá momentos em que você desejará instalar um pacote, mas não sabe seu nome exato. As opções search all ou search podem pesquisar nos repositórios atualmente habilitados por uma determinada palavra-chave no nome do pacote e/ou em sua descrição, respectivamente.
Por exemplo,
# yum search log
irá pesquisar nos repositórios instalados por pacotes com a palavra log em seus nomes e resumos, enquanto
# yum search all log
irá procurar pela mesma palavra-chave na descrição do pacote e campos url.
Uma vez que a pesquisa retorna uma lista de pacotes, você pode querer exibir mais informações sobre alguns deles antes de instalar. É quando a opção info será útil:
# yum info logwatch

Você pode verificar regularmente as atualizações com o seguinte comando:
# yum check-update
O comando acima retornará todos os pacotes instalados para os quais uma atualização está disponível. No exemplo mostrado na imagem abaixo, apenas rhel-7-server-rpms possui uma atualização disponível:

Em seguida, você pode atualizar apenas esse pacote com,
# yum update rhel-7-server-rpms
Se houver vários pacotes que podem ser atualizados, yum update irá atualizá-los todos de uma vez.
Agora, o que acontece quando você conhece o nome de um executável, como ps2pdf, mas não sabe qual pacote o fornece? Você pode descobrir com o comando yum whatprovides “*/[executable]”
:
# yum whatprovides “*/ps2pdf”

Agora, quando se trata de remover um pacote, você pode fazer isso com yum remove package. Fácil, não é? Isso mostra que o yum é um gerenciador de pacotes completo e poderoso.
# yum remove httpd
Leia também: 20 comandos Yum para gerenciar o gerenciamento de pacotes RHEL 7
Good Old Plain RPM
RPM (também conhecido como Gestor de Pacotes RPM, ou originalmente Gestor de Pacotes RedHat) também pode ser usado para instalar ou atualizar pacotes quando eles se apresentam como pacotes independentes .rpm
.
É frequentemente utilizado com as opções -Uvh
para indicar que ele deve instalar o pacote se ainda não estiver presente ou tentar atualizá-lo se já estiver instalado (-U)
, produzindo uma saída detalhada (-v)
e uma barra de progresso com marcas de hash (-h)
enquanto a operação está sendo executada. Por exemplo,
# rpm -Uvh package.rpm
Outro uso típico do rpm é produzir uma lista dos pacotes atualmente instalados com o comando rpm -qa
(abreviação de query all):
# rpm -qa

Leia também: 20 comandos RPM para instalar pacotes no RHEL 7
Agendamento de tarefas usando o Cron
O Linux e outros sistemas operacionais semelhantes ao Unix incluem uma ferramenta chamada cron que permite agendar tarefas (ou seja, comandos ou scripts em shell) para serem executados periodicamente. O Cron verifica a cada minuto o diretório /var/spool/cron em busca de arquivos que são nomeados de acordo com as contas em /etc/passwd.
Ao executar comandos, qualquer saída é enviada por email para o proprietário do crontab (ou para o usuário especificado na variável de ambiente MAILTO no arquivo /etc/crontab, se ele existir).
Os arquivos crontab (que são criados digitando crontab -e e pressionando Enter) têm o seguinte formato:

Assim, se quisermos atualizar o banco de dados de arquivos local (que é usado pelo comando locate para encontrar arquivos por nome ou padrão) a cada segundo dia do mês às 2:15 da manhã, precisamos adicionar a seguinte entrada no crontab:
15 02 2 * * /bin/updatedb
A entrada acima do crontab lê: “Executar /bin/updatedb no segundo dia do mês, todos os meses do ano, independentemente do dia da semana, às 2:15 da manhã“. Como você já deve ter adivinhado, o símbolo de asterisco é usado como um caractere curinga.
Depois de adicionar um trabalho cron, você pode ver que um arquivo chamado root foi adicionado dentro de /var/spool/cron, como mencionamos anteriormente. Esse arquivo lista todas as tarefas que o daemon crond deve executar:
# ls -l /var/spool/cron

Na imagem acima, o crontab do usuário atual pode ser exibido usando o comando cat /var/spool/cron/root ou,
# crontab -l
Se você precisar executar uma tarefa com uma frequência mais precisa (por exemplo, duas vezes por dia ou três vezes por mês), o cron também pode ajudá-lo a fazer isso.
Por exemplo, para executar /meu/script no 1º e 15º de cada mês e enviar qualquer saída para /dev/null, você pode adicionar duas entradas no crontab da seguinte forma:
01 00 1 * * /myscript > /dev/null 2>&1 01 00 15 * * /my/script > /dev/null 2>&1
Mas, para facilitar a manutenção da tarefa, você pode combinar ambas as entradas em uma só:
01 00 1,15 * * /my/script > /dev/null 2>&1
Seguindo o exemplo anterior, podemos executar /meu/outro/script às 1:30 da manhã no primeiro dia do mês a cada três meses:
30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1
Mas quando você precisa repetir uma determinada tarefa a cada “x” minutos, horas, dias ou meses, você pode dividir a posição correta pela frequência desejada. A seguinte entrada de crontab tem exatamente o mesmo significado que a anterior:
30 01 1 */3 * /my/other/script > /dev/null 2>&1
Ou talvez você precise executar um determinado trabalho com uma frequência fixa ou após o sistema ser inicializado, por exemplo. Você pode usar uma das seguintes strings em vez dos cinco campos para indicar o horário exato em que deseja que seu trabalho seja executado:
@reboot Run when the system boots. @yearly Run once a year, same as 00 00 1 1 *. @monthly Run once a month, same as 00 00 1 * *. @weekly Run once a week, same as 00 00 * * 0. @daily Run once a day, same as 00 00 * * *. @hourly Run once an hour, same as 00 * * * *.
Leia também: 11 Comandos para Agendar Tarefas Cron no RHEL 7
Localizando e Verificando Logs
Os logs do sistema estão localizados (e rotacionados) dentro do diretório /var/log. De acordo com o Padrão de Hierarquia do Sistema de Arquivos Linux, este diretório contém arquivos de log diversos, que são escritos nele ou em um subdiretório apropriado (como audit, httpd ou samba na imagem abaixo) pelos respectivos daemons durante a operação do sistema:
# ls /var/log

Outros logs interessantes são dmesg (contém todas as mensagens do buffer de anel do kernel), secure (registra tentativas de conexão que requerem autenticação do usuário), messages (mensagens do sistema) e wtmp (registros de todos os logins e logouts de usuários).
Os logs são muito importantes porque permitem ter uma visão do que está acontecendo a todo momento no sistema e o que aconteceu no passado. Eles representam uma ferramenta inestimável para solucionar problemas e monitorar um servidor Linux, e por isso são frequentemente usados com o comando tail -f
para exibir eventos, em tempo real, conforme eles acontecem e são registrados em um log.
Por exemplo, se você deseja exibir eventos relacionados ao kernel, digite o seguinte comando:
# tail -f /var/log/dmesg
A mesma coisa se você deseja visualizar o acesso ao seu servidor web:
# tail -f /var/log/httpd/access.log
Resumo
Se você souber como gerenciar eficientemente pacotes, agendar tarefas e onde procurar informações sobre a operação atual e passada do seu sistema, pode ter certeza de que não terá surpresas com frequência. Espero que este artigo tenha ajudado você a aprender ou relembrar seus conhecimentos sobre essas habilidades básicas.
Não hesite em nos enviar uma mensagem usando o formulário de contato abaixo se tiver alguma dúvida ou comentário.
Source:
https://www.tecmint.com/yum-package-management-cron-job-scheduling-monitoring-linux-logs/