Bash Script: scp archivos a un servidor remoto

Por Sagara el 8 de julio del 2013

Después de almacenar grandes cantidades de archivos o logs en un servidor, como en el ejemplo de los reportes con DB2 y Bash Script. Podemos enfrentarnos al problema del espacio en el disco duro. Lo mas común para resolver esto es mover a un servidor de respaldo los archivos, hacer cintas de respaldo o incluso eliminar archivos con una fecha mayor a n cantidad de tiempo para liberar espacio. Para el primer caso, veamos como hacer un Bash Script que haga un respaldo de los archivos que cuenten con cierta nomenclatura a un servidor remoto con scp.

Para realizar el siguiente ejemplo vamos a necesitar:

El comando básico para hacer la copia usando scp es así:

scp archivo username@remoteserver.com:/path/in/remote/server 

Vamos a tomar el ejemplo que hicimos anteriormente de los reportes de DB2 y Bash Script para crear un Script que haga el scp de los archivos al servidor remoto. El código podría empezar de la siguiente forma:
Leer el resto de la entrada »


Publicado en Software Libre, Tutoriales

Bash Script: conectarse a DB2 y hacer un reporte

Por Sagara el 21 de junio del 2013

ibm-db2

  • Vamos a crear un Bash Script que se conecte localmente a una base de datos DB2 y envié un reporte vía email

Veamos el siguiente escenario: una universidad esta capturando inasistencias por materia de los alumnos de primer año. Por políticas universitarias la tolerancia máxima es de tres faltas y cuatro en algunas materias. El requerimiento podría ser mandar un reporte semanal al asesor con el total de candidatos por materia que están por alcanzar el máximo de faltas hasta el momento.

Empecemos con un ejemplo de una tabla que esta guardando inasistencias de estudiantes por materia:

"ALUMNO_ID" BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (
 ...
 ... )
"MATERIA" VARCHAR(10000) NOT NULL ,
"INASISTENCIA" INTEGER NOT NULL ,
 ...
 

Ejecutar queries en DB2

Primero vamos a crear la función que ejecute SQL queries en la base de datos, los guarde en un archivo de texto y la mandamos llamar con unos cuantos ejemplos:

#!/bin/bash

_file="reportCandidates2fail.txt"

_db="UNIVERSITY_DB"
_table="STUDENTS_ABSENCES"

# Funcion para ejecutar sql queries en db2
# necesita dos parametros: SQL ("$1") y MATERIA ("$2")
function runQuery(){
        query=$(db2 -x "$1")
        EXIT_CODE=$?

        if [ $EXIT_CODE -ne 0 ] ; then
                echo "Error : $query"
        else
                echo "$2, $query" >> ${_file}
        fi
}

# Connect to the database
db2 connect to $_db

_SQL="SELECT COUNT(*) FROM ${_table} WHERE MATERIA='MATEMATICAS' AND INASISTENCIA=2"
runQuery "${_SQL}" "MATEMATICAS"

_SQL2="SELECT COUNT(*) FROM ${_table} WHERE MATERIA='REDES' AND INASISTENCIA=2"
runQuery "${_SQL2}" "REDES"

_SQL3="SELECT COUNT(*) FROM ${_table} WHERE MATERIA='DEPORTE' AND INASISTENCIA=3"
runQuery "${_SQL3}" "DEPORTE"

#SQL here
#SQL here
#And more funny SQL here

 

Arrays y loops

Para ahorrarnos lineas de código y no tener que estar escribiendo un SQL por por cada materia vamos a hacer unos arreglos y unos ciclos:
Leer el resto de la entrada »


Publicado en Software Libre, Tutoriales
Sitios Amigos
Únete en Facebook
Síguenos en Twitter
Publicaciones Favoritas