v0 - inicio de pruebas en Servicios Trébol
This commit is contained in:
parent
1cd5fa6340
commit
89df7ded9c
5 changed files with 101 additions and 1 deletions
15
INSTALL.md
Normal file
15
INSTALL.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Kiffa - Instalación
|
||||
|
||||
Después de clonar el repositorio se sigue los siguientes pasos:
|
||||
|
||||
1.- Crear una copia de `kiffa.conf.dist` con el nombre `kiffa.conf` el cual contendrá la configuración necesaria.
|
||||
|
||||
2.- En `kiffa.conf` colocar las variables que sea necesario dentro del caso:
|
||||
|
||||
* `HOST`, `PORT`: conexión a la BDD, en caso que no se lea desde `kiffa-iterate.sh`.
|
||||
* `DB` : conexión a la BDD, en caso que no se lea desde `kiffa-iterate.sh`.
|
||||
* `USER` : usuario de la BDD con permisos de lectura y acceso remoto.
|
||||
* `PASS` : password para `USER`
|
||||
* `DESTDIR` : Ruta en la cual se ensambla los archivos de historial.
|
||||
|
||||
|
27
README.md
27
README.md
|
@ -1,4 +1,29 @@
|
|||
# Kiffa
|
||||
|
||||
Miniaplicativo de backend archivador de datos boletas y ventas fiscales para BD Alerce, Crux.
|
||||
Miniaplicativo de backend archivador de datos boletas y ventas fiscales para BD Alerce, Crux.
|
||||
|
||||
El sistema comprende dos scripts: `kiffa.sh` y `kiffa-iterate.sh`. El aplicativo principal es kiffa.sh el cual se conecta a una BDD por medio de un archivo de conexión, y descarga información de una lista de tablas que se le entrega.
|
||||
|
||||
`kiffa-iterate.sh` se entrega como complemento para serializar trabajo sobre una serie de bases de datos listadas en un almacén central.
|
||||
|
||||
|
||||
# Kiffa.sh
|
||||
|
||||
El aplicativo trabaja de la siguiente forma:
|
||||
|
||||
Al iniciar `kiffa.sh`, cargará la información disponible en `kiffa.conf`. Entre este archivo y el entorno, compilará la información en tres pasos:
|
||||
|
||||
* las variables para conectarse a la base de datos `DB` en `HOST:PORT`, con las creenciales de `-u USER -pPASS`.
|
||||
* Establecida la conexión, tomará una lista de tablas desde `stdin`. Cada una de estas tablas debe tener los campos y formatos necesarios para que *Kiffa* haga su análisis.
|
||||
* Se calculará el timeframe de descarga `TF`, que es de un tiempo de inicio + 1 hora, y se descargará la información que corresponde a este periodo en un archivo almacenado en `DESTDIR`.
|
||||
|
||||
Por ejemplo, si `mis_tablas.txt` tiene una lista de tablas con los requerimientos necesarios (una tabla por línea), el siguiente comando captura la información de estas tablas de una base de datos configurada en `kiffa.conf`:
|
||||
|
||||
kiffa.sh DB=mi_bdd < mis_tablas.txt
|
||||
|
||||
|
||||
# kiffa-iterate.sh
|
||||
|
||||
(En progreso)
|
||||
|
||||
|
||||
|
|
9
kiffa-iterate.sh
Executable file
9
kiffa-iterate.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
LISTA=${1?Falta el argumento arg1: nombrearchivo}
|
||||
|
||||
while read -r ID HOST PORT DB; do
|
||||
echo ${HOST} ${PORT} ${DB}
|
||||
done < ${LISTA}
|
||||
|
45
kiffa-v0.sh
Executable file
45
kiffa-v0.sh
Executable file
|
@ -0,0 +1,45 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
umask 007
|
||||
source kiffa.conf
|
||||
|
||||
DB=${1?No hay arg1: nombre BDD}
|
||||
TABLELIST=${2?No hay arg2: lista tablas}
|
||||
|
||||
#TF se pasa por el entorno y es 'now' o el timeframe para iniciar la lectura en el formato de $(date)
|
||||
#DB=db_trebol_recabarren
|
||||
# DB es el primer argumento
|
||||
#TABLELIST es el segundo argumento
|
||||
|
||||
TF=${TF:-TF}
|
||||
echo 0 ${TF}
|
||||
FECHA=$(date -d "${TF}" '+%Y-%m-%d')
|
||||
echo 1 ${FECHA}
|
||||
|
||||
# produccion
|
||||
INICIO=$(date -d '${TF} - 1 hour' '+%Y-%m-%d %H:00:00')
|
||||
FIN=$(date -d '${TF} - 1 hour' '+%Y-%m-%d %H:59:59')
|
||||
SUFF=$(date -d '{TF} - 1 hour' '+%Y%m%d-%H')
|
||||
W="bof_fecha = CURRENT_DATE AND (creado BETWEEN '${INICIO}' AND '${FIN}') ORDER BY creado ASC"
|
||||
|
||||
# pruebas
|
||||
#INICIO=$(date -d "${TF} - 1 hour" '+%H:00:00')
|
||||
#FIN=$(date -d "${TF} - 1 hour" '+%H:59:59')
|
||||
#SUFF=$(date -d "${TF} - 1 hour" '+%Y%m%d-%H')
|
||||
#W="bof_fecha = '${FECHA}' AND (bof_hora BETWEEN '${INICIO}' AND '${FIN}') ORDER BY bof_hora ASC"
|
||||
|
||||
# --
|
||||
|
||||
DB=${1}
|
||||
mkdir -p ${DESTDIR}/${DB}
|
||||
echo $W
|
||||
while read -r TABLENAME; do
|
||||
#echo $HORARIO
|
||||
mysqldump -h ${HOST} --port ${PORT} -u ${USER} -p${PASS} \
|
||||
--compact -t --disable-extended-insert --skip-tz-utc \
|
||||
--where="${W}" \
|
||||
${DB} ${TABLENAME} > ${DESTDIR}/${DB}/${TABLENAME}.${SUFF}.sql;
|
||||
echo ${DESTDIR}.${DB}.${TABLENAME};
|
||||
done < ${TABLELIST}
|
||||
|
6
kiffa.conf.dist
Normal file
6
kiffa.conf.dist
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Para habilitar Kiffa,
|
||||
# crear la copia 'kiffa.conf' y habilitar como sea adecuado.
|
||||
|
||||
USER=usuario
|
||||
PASS=password
|
||||
DESTDIR=$(pwd)
|
Loading…
Add table
Reference in a new issue