En este post quiero compartir con ustedes varios script para distintas funciones espero les pueda ser de utilidad (Aclarando que la información en este post fueron recabados desde la web y traducidos asi que sepan entender algunos errores de traducción)
script que monitorea si el servidor FTP esta activo
Este es un script que monitorea si el servidor FTP esta activo, caso contrario enviara un e-mail al administrador.
Requisito:
Smtp activo.
Script que Graba una imagen iso en el cd
graba_iso <archivo.iso>
Script que Monitorea intentos de conexiones
Simplemente muestra en una terminal los intentos de conexiones en los puertos especificados en la configuración del iptables. La regla para eso seria:
iptables -A INPUT -p tcp -m multiport --destination-port 21:23 -m state --state NEW -j LOG --log-prefix "[ FIREWALL ] "
En este script solamente se monitorean las conexiones en los puertos 21, 22 y 23, ustedes pueden agregar los puertos que quisieran.
Ejemplo --destination-port 21 : 23 , 80 , 6000 : 6009.
Script de Backup Base de Datos PostgreSQL [pg_dump]
Este script genera backup de bases de datos PostGreSQL usando el pg_dump basado en 'innumerables variables' que informan el destino del backup y el nombre del archivo, etc.
script que monitorea si el servidor FTP esta activo
Este es un script que monitorea si el servidor FTP esta activo, caso contrario enviara un e-mail al administrador.
Requisito:
Smtp activo.
#!/bin/bash
#############################################
#############################################
#############################################
# ftpmail.sh
# Script que verifica si el servidor ftp esta activo,
# caso contrario, envia un e-mail al administrador
# del sistema.
#
#
##############################################
##############################################
##############################################
LOG1="/var/log/ftp.log"
LOG2="/tmp/ftp.log.tmp"
#Modifique el e-mail aqui
EMAIL="root@localhost"
FTP=$(netstat -l |grep ftp)
if [ $? -ne 0 ] ; then
echo "**********************ATENCIÓN**************************" >> $LOG1
echo "`date` Servico FTP paralizado!" >> $LOG1
echo "**********************ATENCIÓN**************************" >> $LOG1
SERVMAIL=$(netstat -l |grep smtp)
if [ $? -eq 0 ] ; then
tail -3 $LOG1 > $LOG2
mail $EMAIL -s "FTP PARALIZADO!" < $LOG2
exit 0
fi
fi
#EOF
Script que Graba una imagen iso en el cd
graba_iso <archivo.iso>
#! /bin/sh
NOMBRE_ISO=$1
# graba una imagen iso en el cd
# sintaxis:
#
# graba_iso <archivo.iso>
if [ ! -f "$NOMBRE_ISO" ]; then
echo "Imagen no puede ser encontrada!"
echo $NOMBRE_ISO
else
echo "Grabando el disco ..."
cdrecord -v speed=12 dev=0,1,0 $NOMBRE_ISO
fi
echo "Terminado!"
Script que Monitorea intentos de conexiones
Simplemente muestra en una terminal los intentos de conexiones en los puertos especificados en la configuración del iptables. La regla para eso seria:
iptables -A INPUT -p tcp -m multiport --destination-port 21:23 -m state --state NEW -j LOG --log-prefix "[ FIREWALL ] "
En este script solamente se monitorean las conexiones en los puertos 21, 22 y 23, ustedes pueden agregar los puertos que quisieran.
Ejemplo --destination-port 21 : 23 , 80 , 6000 : 6009.
#!/bin/sh
#
#Description:
#This a simple script which works together with iptables and syslogd, you set some rules to save log then you run this script
#Ejemplo:
#
#iptables -A INPUT -p tcp -m multiport --destination-port 21 : 23 , 5900 : 5909 -m state --state NEW -j LOG --log-prefix "[ FIREWALL ] "
# When someone tries to connect on this ports (21-23, 5900-5909) the script will show us
clear
echo -e t [tMonitoring Firewallt]
echo
echo Waiting Connections...
echo
echo
tail -n0 -f /var/log/syslog |sed -n "s/(.* [0-9]{2} [0-9]{1,}:[0-9]{1,}:[0-9]{1,} ).* ([ .* ] ).*(SRC=.* )DST.*(DPT=.*) W.*/1234/p"
Script de Backup Base de Datos PostgreSQL [pg_dump]
Este script genera backup de bases de datos PostGreSQL usando el pg_dump basado en 'innumerables variables' que informan el destino del backup y el nombre del archivo, etc.
#!/bin/sh
# Script que genera backup de bases de datos PostGreSQL
# VARIABLES ##################
vU="postgres" # Usuario en PostGreSQL
vP="pgsql" # Contraseña
vB=$1 # Base De datos
vBI="/usr/local/pgsql/bin/" # Directorio raíz de los binarios de PostGreSQL
vR="/BackupSuporte/" # Directorio raíz
vD="BasesDeDatos/" # Destino del Backup
vPre="basePGSQL" # Prefijo del nombre del archivo de salida
vE=".dmp" # Extención del archivo de salida
vH="localhost" # Host del servidor
vAno=`date +%Y` #Año
vMes=`date +%m` #Mes
vDia=`date +%d` #Dia
vHor=`date +%H` #Hora
vMin=`date +%M` #Min
vCod=`date +%N` #Código date [date (GNU coreutils) 5.3.0]
vDat="$vAno$vMes$vDia-$vHor$vMin-$vCod"
vA=$vPre"-"$vB"-"$vDat$vE
# VALIDACIÓN##################
if [ -z $vU ]; then
echo "Sin usuario";
exit 0;
fi
if [ -z $vP ]; then
echo "Sin contraseña";
exit 0;
fi
if [ -z $vB ]; then
echo "informe del nombre de la base de datos";
exit 0;
fi
# BACKUP #####################
echo "# Generando backup. Aguarde..."
echo "# Destino: $vR$vD"
echo "# Nombre del archivo: $vA"
$vBI""pg_dump -U $vU -h $vH --format=c --file=$vR$vD$vA $vB