Script - Realizando relatório do servidor
Publicado por Leandro da S. Barbosa 26/03/2005
[ Hits: 10.631 ]
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/*
Script Para Ajustar o Intevalo de Legendas 2
Redundância de dois links de internet
Instalação do Microsoft Edge no Linux
Script de backup para Gravador CD-R ou CD-Rw
Atualiza base de dados do Clamav e avisa o admin
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Instalação Uefi com o instalador clássico do Mageia (0)
É cada coisa que me aparece! - não é só 3% (2)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (1)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta