Enviado em 06/09/2023 - 09:45h
Atualizar um sistema operacional Linux é uma tarefa fundamental para garantir a segurança, estabilidade e desempenho do ambiente. No entanto, realizar essas atualizações manualmente pode ser demorado e propenso a erros. É aqui que entra a automação, que pode economizar tempo e garantir que todas as atualizações necessárias sejam aplicadas de forma consistente.#!/bin/bash
# Author: Marco Cardoso de Siqueira
# marco@technicalcorporation.com
# Describe: Script Automatizado para atualização em distribuições Linux baseadas em Debian, adaptado para RHEL.
# ---------------------------------------------------------------------------------------------------------------
## Cores para formatação da saída dos comandos
RED='\033[1;31m'
GREEN='\033[1;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # sem cor
# ---------------------------------------------------------------------------------------------------------------
## Mensagens para as condições e conclusões dos comandos
CONERROR="[ERRO] - Seu computador não tem conexão com a internet. Verifique os cabos e o modem"
CONSUCESS="[VERIFICADO] - Conexão com a Internet funcionando normalmente"
BEGIN_UPDATE="*** INICIANDO ATUALIZAÇÃO DO SISTEMA ***"
END_UPDATE="*** ATUALIZAÇÃO REALIZADA COM SUCESSO ***"
BEGIN_CLEAN="*** INICIANDO LIMPEZA DE SISTEMA ***"
END_CLEAN="*** LIMPEZA CONCLUÍDA ***"
MSG_MKDIR="A PASTA JÁ EXISTE"
## Obtem o mês e o ano para criação do nome do arquivo de log
MES=$(date +%b)
ANO=$(date +%Y)
# ---------------------------------------------------------------------------------------------------------------
## Função para verificar se o diretório existe e criá-lo, se necessário
create_directory() {
if [ -d "$1" ]; then
echo -e "${RED} ${MSG_MKDIR}.${NC}"
else
mkdir -v "$1"
fi
}
## Função para executar a atualização do sistema
update_system() {
echo -e "${YELLOW} ${BEGIN_UPDATE} ${NC}"
sleep 1
yum check-update >> "/mnt/log_update/update_${MES}_${ANO}.log"
yum upgrade -y >> "/mnt/log_update/update_${MES}_${ANO}.log"
yum upgrade --security >> "/mnt/log_update/update_${MES}_${ANO}.log"
echo -e "${GREEN} ${END_UPDATE} ${NC}"
sleep 2
}
## Função para limpar o sistema
clean_system() {
echo -e "${YELLOW} ${BEGIN_CLEAN} ${NC}"
sleep 1
yum clean all >> "/mnt/log_update/clean_${MES}_${ANO}.log"
echo -e "${GREEN} ${END_CLEAN} ${NC}"
sleep 2
}
## Testando conexão com a internet
if ! ping -c 1 registry.redhat.io -q &> /dev/null; then
echo -e "${RED} ${CONERROR}.${NC}"
sleep 2
exit 1
else
echo -e "${GREEN} ${CONSUCESS}.${NC}"
sleep 2
## Cria a pasta para salvar o log da execução
create_directory "/mnt/log_update"
## Atualização de sistema
update_system
## Realiza a limpeza do sistema
clean_system
## Reinicia automaticamente após a atualização
echo -e "${GREEN} *** As atualizações foram realizadas com sucesso. Reiniciando o sistema. ***${NC}"
sleep 3600
reboot
fi