Linux Solutions Center    
Bienvenido a    :: LINUX SOLUTIONS CENTER ::
México, 
Home Scripts Shell script para monitorear servicios que estan corriendo en Linux con netstat
LINUX es nuestra Especialidad: · Servidores de Internet · Monitoreo de Servidores y Enlaces · Virtualizacion · Firewalls con OpenSource · Proxy Servers (Web Cache) · DNS y DHCP · Web Server · Webmail · NAT's · IP Forwarding · FTP Server · Email Attachmnt Filtering · Reportes estadisticos · Linux Gateway/Router · Bloqueo de Puertos · Email Server · Reporte de todo el trafico interno/externo · Administracion de Ancho de banda · VPN's con Open VPN · Soporte Ténico comercial · Administración de servidores Linux (RedHat EL/AS, Debian, CentOs, etc) · Instalación y Configuración de Servidores · Configuración de servidores de E-Mail (Sendmail, Qmail, Postfix con virtual domains) · Antvirus con OpenSource · Administración de LVM · y mas... mucho mas
Linux Solutions C.
Acerca de
Actualidad
GNU/Linux
Gente en Línea
Tenemos 12 invitados conectado(s)
Estadísticas
Ver contenido por hits : 327589
Acceso



Google Translation

 
Temas Relacionados

El Clima
Current Thu, 09 Sep 2010 12:41 pm CDT
City: Ocoyucan
Mostly Cloudy
sunrise: 7:19 am
sunset: 7:40 pm
Act: 23°
Máx: 22°
Mín: 12°

Esta NocheMañana
Scattered
Thunderstorms
Scattered
Thunderstorms
 
Máx: 22°
Mín: 12°
Máx: 22°
Mín: 12°



Shell script para monitorear servicios que estan corriendo en Linux con netstat PDF Imprimir E-mail Hits: 587
Usar puntuación: / 1
MaloBueno 
Scripts
Escrito por Domingo Varela   
Viernes, 06 de Noviembre de 2009 12:33

Este shell script monitorea servicios que estan activos en un servidor Linux. 



#!/bin/bash
# Shell script para monitorear servicios que estan corriendo en Linux tales como:
# Dns, Pop3, Imap, web, ssh, mail, mysql, etc.
#
# Si el servicio falla, entonces se envia un email al SysOp
# Last updated: 6/Nov/2009.
# Probe: True
#


#
# Settings
#

ports="ssh domain http smtp pop3 imap mysql pop3s imaps https"
 
# Nombre de los servicios
service="SSH DNS HTTP MAIL POP3 IMAP MYSQL POP3S IMAPS HTTPS"
 
#Email del SysOp
ADMINEMAIL=" Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla "
 
NETSTAT=/bin/netstat
MAIL=/usr/bin/mail
LOGGER=/usr/bin/logger
ID=/usr/bin/id
MAIL=/bin/mail
LOGGER=/bin/logger
 
c=1
status=""
sendmail=0
logtosyslog=0
LOG="/tmp/services.log.$$"
 

log(){
        echo "$@"
        echo "$@" >> $LOG
}
 

die(){
        echo "$@"
        exit 999
}
 

is_root(){
        local id=$($ID -u)
        [ $id -ne 0 ]  && die "You must be root to run $0."
}

init_script(){
        [ ! -x $MAIL ] && die "$MAIL command not found."
        [ ! -x $NETSTAT ] && die "$NETSTAT command not found."
        [ ! -x $LOGGER ] && die "$LOGGER command not found."
        [ ! -x $ID ] && die "$ID command not found."
        is_root
        >$LOG
}
 

# Verificamos que todos los servicios esten activos y se envia un email si no estan activos
chk_services(){
        log "-------------------------------------------------------------"
        log "Running services status @ $(hostname) [ $(date) ]"
        log "-------------------------------------------------------------"
 
        # Obtenemos los puertos
        RPORTS=$($NETSTAT --tcp --listening --programs | grep -vE '^Active|Proto' | grep 'LISTEN' | awk '{ print $4}' | cut -d: -f2 )
 
       
        for t in $ports
        do
                sname=$(echo $service | cut -d' ' -f$c)
                echo -en " $sname\t\t\t : "
                echo -en " $sname\t\t\t : " >> $LOG
                for r in $RPORTS
                do
                        if [ "$r" == "$t" ]
                        then
                                status="YES"
                                sendmail=1
                                break
                        fi
                done
                echo -n "$status"
                echo ""
                echo -n "$status" >>$LOG
                echo "" >>$LOG
                [ $logtosyslog -eq 1  ] && $LOGGER "$sname service running : $status"
 
              
                c=$( expr $c + 1 )
                status="NO"
        done
        log "-------------------------------------------------------------"
        log "This is an automatically generated $(uname) service status notification by $0 script."
 
        if [ $sendmail -eq 1 ];
        then
                $MAIL -s "Service(s) Down @ $(hostname)" $ADMINEMAIL < $LOG
        fi
}
 
### Programa Principal ###
init_script
chk_services
 
### remove a log file ###
[ -f $LOG ] && /bin/rm -f $LOG


Última actualización el Viernes, 06 de Noviembre de 2009 12:35
 




LSC Support Online
SysOp
Tech Support
Encuestas
¿Y tú, que Desktop prefieres ?
 
Anunciate aquí

Centro de Soluciones Linux

KoalaSoft-Sitio de Amigos

Computer Fixers

Siguenos en Identi.ca Siguenos en Identi.ca


No. de Visitas
mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoy355
mod_vvisit_counterAyer584
mod_vvisit_counterEsta Semana2084
mod_vvisit_counterEste Mes5253
mod_vvisit_counterTotal431780
Linuxsc en RSS
News Feeds
Archivos
identi.ca

Ultimo Reporte