Script - Realizando relatório do servidor
Publicado por Leandro da S. Barbosa 26/03/2005
[ Hits: 10.681 ]
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 criar usuarios Dialup
UNIX - Alerta de espaço em disco via e-mail
Facilitando algumas tarefas no CentOS 7
Compilação de módulos para VMware 12.5.7 no Fedora 26
Manutencao de arquivos no Squid-Cache
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Remoção de propaganda com o programa Comskip[AJUDA] (1)
Linux Lite Demorando Muito Para Ligar (0)
PC não liga no filtro de linha (3)