Script - Realizando relatório do servidor
Publicado por Leandro da S. Barbosa 26/03/2005
[ Hits: 10.463 ]
Script tem como objetivo realizar um relatório agendado pela crontab o resultado é enviado no e-mail do administrador e o log em um servidor de ftp.
O relatório reporta:
1 - Versão realazada da distro, Hostname, Kernel
2 - Espaço em disco
3 - Memória Livre
4 - Usuários Logados
5 - 30 ultimas linhas dos Logs do secure, messages
6 - Lista de Processos
7 - Regras do Firewall iptables
8 - Portas TCP abertas e UDP
9 - Conexões estabelecidas
10 - Últimos usuários logados do sistema
11 - etc...
#!/bin/bash # Criado por Leandro da S. Barbosa (lbarbosa@dba.com.br) # DBA Engenharia de Sistemas # pasta de logs pastalog=/var/log pastabackup=/backup/monitor # numeros de linhas de saída output buffern=10 # email do solicitante para monitoramento email=lbarbosa@dba.com.br # servidor de ftp que irá gravar os backups ftpserver=7.0.7.103 username=backup password=backuppwd pastaftp=/leo/monitor # verificando se a pasta de log existe if [ ! -d $pastalog ]; then mkdir -p $pastalog fi # verificando se a pasta backup existe if [ -d $pastabackup ]; then cd $pastabackup else mkdir -p $pastabackup cd $pastabackup fi # definindo nomes de arquivos backup e de log LOGFILE="monitor-log-$(/bin/date +%d-%m-%Y--%H-%M-%S).log" touch $LOGFILE echo "($(/bin/date +%d/%m/%Y-%H:%M:%S)) - Iniciando Relatório pelo usuário `whoami`" >> $LOGFILE echo " " >> $LOGFILE echo " LOGFILE: $LOGFILE" >> $LOGFILE echo " Email(s): $email" >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Informações " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "Kernel: `uname -a` " >> $LOGFILE echo "Distro: `cat /etc/redhat-release` " >> $LOGFILE echo "Hostname: `hostname` " >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Espaço em Disco " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "`df -h` " >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Memória Livre Unidade: MB " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "`free -m` " >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Usuários Logado no S.O. " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "`who` " >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Log Secure.log Ultimas linhas " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "`tail -n 30 $pastalog/secure` " >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Log Messages.log Ultimas linhas " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "`tail -n 30 $pastalog/messages` " >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Listando Processos " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "`ps -aux` " >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Listando Regras do Firewall " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "`iptables -L` " >> $LOGFILE echo "`iptables -t nat -L` " >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Listando Portas TCP abertas " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "`netstat -nat|grep LISTEN` " >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Listando Portas UDP abertas " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "`netstat -nau` " >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Listando Conexões Estabelecidas " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "`netstat -at | grep ESTABLISHED` " >> $LOGFILE echo " " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "- Ultimos Usuários Logados na BASH " >> $LOGFILE echo "------------------------------------------------------------------------------------------------ " >> $LOGFILE echo "`last` " >> $LOGFILE echo " " >> $LOGFILE echo " " >> $LOGFILE echo "############# CRONTAB List " echo "`crontab -l`" >> $LOGFILE echo " " >> $LOGFILE # enviando email ao solicitante sobre o status cat $pastabackup/$LOGFILE | mail $email -s "Monitoramento Máquina `hostname` - Data/Hora $(/bin/date +%d/%m/%Y) às $(/bin/date +%H:%M:%S)" # limpando os arquivos de log for i in `find $pastalog/*`; do if [ -f $i ]; then echo > $i fi done rm -rf $pastalog/*.? lista=`ls -1 $pastabackup/* | grep -v $LOGFILE` for s in $lista; do rm -f $s done # enviando arquivo ftp -ni $ftpserver <<FIM > /dev/null user $username $password lcd $pastabackup passive cd $pastaftp binary put $LOGFILE bye FIM rm -rf /backup/monitor/*
Gera estatísticas de tráfego de pacotes nas interfaces de um servidor linux via SNMPv3.
linkswitch (redundância de internet)
Agora temos uma assistente virtual no fórum!!! (247)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Como configuro meu controle de xbox no mupen64? (1)
Reset do linux sem perder dual boot (2)
Lançado Ubuntu 24.04 Final (6)