Script - Realizando relatório do servidor
Publicado por Leandro da S. Barbosa 26/03/2005
[ Hits: 10.795 ]
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 limpar os caches do proxy (squid)
Enviar e visualizar Twitter no terminal
Organize seu /var/log/messages
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Ajuda Pra Melhoria do NFTABLES. (7)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (4)
como instalar o steam no twiteros 2.0.2(arm) (5)