Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Neste artigo, vamos explorar como configurar o desligamento automático de sistemas Linux utilizando comandos Shell Script e o agendador de tarefas crontab. O desligamento automático é uma funcionalidade útil para otimizar o uso de recursos em servidores ou computadores pessoais, garantindo que eles sejam desligados em horários específicos ou após um determinado período de inatividade.
Lógica e Funcionamento
Neste artigo, vamos explicar a criação de um script em Shell destinado a otimizar o gerenciamento de computadores em um ambiente comercial. Consideraremos que a empresa possui três computadores no caixa e que a loja só fecha após realizar o fechamento do caixa.
A ideia é implementar um script em Shell em cada máquina que, a cada hora, realize um ping nos computadores do caixa para verificar se estão respondendo. Caso os três computadores não respondam, presume-se que os caixas estão fechados. Nesse cenário, os computadores do setor de vendas, que podem ser muitos, serão desligados automaticamente.
A lista de máquinas é definida na variável machines, onde devem ser informados os nomes ou endereços IP dos computadores que se deseja monitorar. Além disso, é possível ajustar o tempo de espera entre as verificações na variável sleep.
CÓDIGO:
A ideia é implementar um script em Shell em cada máquina que, a cada hora, realize um ping nos computadores do caixa para verificar se estão respondendo. Caso os três computadores não respondam, presume-se que os caixas estão fechados. Nesse cenário, os computadores do setor de vendas, que podem ser muitos, serão desligados automaticamente.
A lista de máquinas é definida na variável machines, onde devem ser informados os nomes ou endereços IP dos computadores que se deseja monitorar. Além disso, é possível ajustar o tempo de espera entre as verificações na variável sleep.
CÓDIGO:
#!/bin/bash
# Listar os IPs ou nomes das máquinas a serem verificados
machines=("192.168.1.10" "192.168.1.11" "192.168.1.12") # Substitua pelos IPs desejados
# Função para verificar a conectividade
check_machines() {
for machine in "${machines[@]}"; do
if ping -c 1 "$machine" &> /dev/null; then
echo "$machine está ligada."
else
echo "$machine está desligada. Desligando a máquina local..."
shutdown now
exit 1 # Sair do script se uma máquina estiver desligada
fi
done
}
# Loop principal
while true; do
check_machines
echo "Todas as máquinas estão ligadas. Aguardando 1 hora para nova verificação..."
sleep 3600 # Esperar 1 hora
done
# Listar os IPs ou nomes das máquinas a serem verificados
machines=("192.168.1.10" "192.168.1.11" "192.168.1.12") # Substitua pelos IPs desejados
# Função para verificar a conectividade
check_machines() {
for machine in "${machines[@]}"; do
if ping -c 1 "$machine" &> /dev/null; then
echo "$machine está ligada."
else
echo "$machine está desligada. Desligando a máquina local..."
shutdown now
exit 1 # Sair do script se uma máquina estiver desligada
fi
done
}
# Loop principal
while true; do
check_machines
echo "Todas as máquinas estão ligadas. Aguardando 1 hora para nova verificação..."
sleep 3600 # Esperar 1 hora
done
______________________________________________________________________
Inscreva-se no meu Canal: https://www.youtube.com/@LinuxDicasPro
Repositório GitHub do Canal: https://github.com/LinuxDicasPro
Grupo do Telegram: https://t.me/LinuxDicasPro
Meu GitHub Pessoal: https://github.com/mxnt10