Archivo etiqueta shell script

Shell Script para hacer copias de seguridad de nuestras bases de datos con ncftpput.

Pues ya estoy aquí de nuevo para escribir un shell script que realiza una copia de seguridad de nuestras Bases de Datos y mediante ncftpput las enviamos a nuestro servidor FTP.

# DATOS
SERVIDOR=GENTOO-VPS
FECHA=$(date +"%m-%d-%Y") # mm-dd-yyyy
EMAIL=su@email
ASUNTO="Backup SQL"
TMP=/home/backup/tmp

# DATOS BD
BD_USUARIO=root
BD_CLAVE=*******

# DATOS FTP
NCFTP="/usr/bin/ncftpput"
FTP=ftp.dominio.com
FTP_USUARIO=user
FTP_CLAVE=******
FTP_DESTINO="./servidores/$SERVIDOR/MySQL/"

for BD in `mysql -u$BD_USUARIO -p$BD_CLAVE -e "show databases" -B -N`
do
    mysqldump -u$BD_USUARIO -p$BD_CLAVE $BD > $TMP/$BD-$FECHA.sql
    $NCFTP -m -u $FTP_USUARIO -p $FTP_CLAVE $FTP $FTP_DESTINO/$BD/ $TMP/$BD-$FECHA.sql
    rm -f $TMP/$BD-$FECHA.sql
done

mail -s "$ASUNTO - $FECHA - $SERVIDOR" $EMAIL

Para optimizar la tarea podemos incluirla en nuestro crontab e incluimos la siguiente linea con la programación de la tarea y donde está ubicado nuestro script. Se ejecutará a las 2 de la madrugada todos los días:

crontab -e
0       2       *       *       *       /home/backup/backup-bd-diaria.sh

, , , , , , ,

No hay Comentarios

Shell Script para incluir/actualizar “drop.lasso” de Spamhaus usando iptables en Gentoo Linux

Este es un pequeño Shell Script para añadir y actualizar rangos de IPs de la lista drop.lasso de Spamhaus.org y que ha determinado como principales emisores de SPAM en Internet.

# declaramos las variables que vamos a usar.
IPTABLES="/sbin/iptables"
SPAM_URL_spamhaus="http://www.spamhaus.org/drop/drop.lasso"
SPAM_FILE_TMP="/home/backup/scripts/spamhaus.ips"
SPAM_TABLE_spamhaus="Spamhaus"
SPAM_IPS=$(cat $SPAM_FILE_TMP | grep -iE "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | awk -F\; '{ print $1 }')

# borramos el fichero de ips anterior si existe.
rm -f $SPAM_FILE_TMP
# descargamos la ultima actualización realizada por spamhaus.org.
# -q no muestra ningún log de registro | -c para continuar la descarga si se cortara.
wget -qc $SPAM_URL_spamhaus -O $SPAM_FILE_TMP

# creamos las lista de ips.
$IPTABLES -n -L INPUT | grep -q "$SPAM_TABLE_spamhaus"

if [ $? -eq 0 ] ; then
   # borramos todas las reglas que contiene la cadena spamhaus.
   $IPTABLES -F $SPAM_TABLE_spamhaus
else
   # crea una nueva cadena llamada spamhaus si no existe.
   $IPTABLES -N $SPAM_TABLE_spamhaus
   # añade la regla spamhaus para todo el tráfico entrante.
   $IPTABLES -A INPUT -j $SPAM_TABLE_spamhaus
fi
   # con RETURN salta el objetivo si existe.
   $IPTABLES -A $SPAM_TABLE_spamhaus -j RETURN

# recorremos la lista de IPs para ir incluyéndolas una por una a iptables.
for IP in $SPAM_IPS
do
    # inserta una nueva regla a la cadena con la opciones especificadas.
    # -p all (bloquea el trafico recibido a través de los protocolos icmp, tcp, udp)
    # -s ip (ip origen del paquete)
    # -j DROP (elimina el paquete recibido)
    $IPTABLES -I $SPAM_TABLE_spamhaus -p all -s $IP -j DROP
done

“El Shell Script ha sido probado correctamente en Gentoo y Fedora Core 5″

Como veis es bastante sencillo y probablemente mejorable … luego solo tendríamos que añadirlo a nuestro crontab para que se ejecute periódicamente.
Descargar el ejemplo.

, , , , , , ,

No hay Comentarios

Creando nuestras copias de Seguridad con ncftpput

NcFTP fue creado en 1990 y fue como quién dice el primer cliente FTP en aparecer. Una de las ventajas de ncftp es que trabaja con la mayoría de sistemas operativos (Windows, Linux, Unix, Mac OS, BSD, etc …), es muy rápido, ofrece una gran cantidad de opciones y es muy sencillo de usar.

Para poder crear nuestras propias copias de seguridad vamos a usar un comando que trae el propio paquete ncftp llamado ncftpput y nos permitirá cargar ficheros y directorios a un ftp remoto de una forma sencilla y rápida. Su uso es el siguiente:

ncftpput –R –v –u "usuario" -p "clave" ftp origen destino

Para que podamos entenderlo explicaré de forma breve que significa cada opción:

-u "usuario" -> Usuario con el que conectamos al FTP.
-p "clave" -> La clave con la que conectamos al FTP.
-v -> te mostrara el progreso de la carga (verbose mode)
-R -> modo recursivo y nos copiará subdirectorios.
ftp -> aquí indicaremos nuestro servidor de FTP.
origen -> los ficheros/directorios que queremos copiar.
destino -> directorio del FTP donde se cargarán los ficheros.

Ahora que conocemos un poco más a fondo el comando ncftpput lo que vamos hacer es crearnos nuestro propio Shell Script que hará nuestras copias de seguridad. Este Shell Script de ejemplo nos permitirá hacer nuestra copia de seguridad de los ficheros del TeamSpeak Server a nuestro propio servidor FTP.

# configuraciones
FTP_SERVIDOR="ftp.nuestro-servidor-ftp.com"
FTP_USUARIO="usuario"
FTP_CLAVE="clave"
FTP_DESTINO="./backups/"
DIRECTORIO_LOCAL="/home/backup/"
FECHA=`date '+%d%m%Y-%H%M'`

# BACKUP DE NUESTRO TEAMSPEAK
tar czf $DIRECTORIO_LOCAL/teamspeak-$FECHA.tgz /etc/teamspeak2-server/server.ini /var/lib/teamspeak2-server/server.dbs
printf "fichero teamspeak-$FECHA.tgz creado.\n"

# ENVIAMOS A NUESTRO FTP
ncftpput -R -m -u $FTP_USUARIO -p$FTP_CLAVE $FTP_SERVIDOR $FTP_DESTINO $DIRECTORIO_LOCAL/teamspeak-$FECHA.tgz

El shell script ha sido probado correctamente en Gentoo y Fedora Core 5.

Como veis es bastante sencillo y si lo mejoramos podremos crearnos nuestras propias copias de seguridad tanto de bases de datos, correo, web, etc … luego solo tendríamos que añadirla a nuestro crontab para que la ejecute periódicamente.

Creando copias de seguridad de nuestras Bases de Datos con ncftpput.
Más información sobre el comando ncftp en http://www.ncftp.com/ncftp/

, , , , , , , , , , , , ,

No hay Comentarios