#!/bin/bash BASE_DIR=$HOME/.antifraude # uso las funciones de util.sh . "$HOME/.antifraude/util.sh" . "$HOME/.antifraude/conf/afimonio.conf" . "$HOME/.antifraude/conf/antifraude.conf" # Es llamada por los trap para deslockear el afimonio finalize() { unlock "afimonio" exit 0 } # filtra el nombre del archivo pasado por parametro sacandole todos los # caracteres que no sean numeros checkfilename(){ date=`echo $1 | cut -d "." -f 1` central=`echo $1 | cut -d "." -f 2` validar_solo_numeros "$date" if [ "$?" -ne 0 ]; then return 1 fi mes=${date:4:2} validar_rango "$mes" "1" "12" if [ "$?" -ne 0 ]; then return 1 fi dia=${date:6:2} validar_rango "$dia" "1" "31" if [ "$?" -ne 0 ]; then return 1 fi hora=${date:8:2} validar_rango "$hora" "0" "23" if [ "$?" -ne 0 ]; then return 1 fi min=${date:10:2} validar_rango "$min" "0" "59" if [ "$?" -ne 0 ]; then return 1 fi validar_solo_numeros "$central" if [ "$?" -ne 0 ]; then return 1 fi return 0 } #--------------------MAIN SCRIPT---------------------- # Recupero las rutas a todos los directorios y archivos que necesito # Del antifraude DATADIR=$ANTI_DATADIR SOURCEDIR=$DATADIR/aprocesar/ ACEPTDIR=$DATADIR/enproceso/ REJECTDIR=$DATADIR/rechazadas/ BINDIR=$ANTI_BINDIR # Del afimonio LOGDIR=$AFIM_LOGDIR LOGNAME=$AFIM_LOGFILE LOGFILE=$LOGDIR/$LOGNAME # Capturo seņales para salir bien (liberando el lock) trap "finalize" INT trap "finalize" TERM # Me lockeo lock "afimonio" || die "No se puede correr, hay otra instancia corriendo o no se puede crear el lock file!" # Comienza el ciclo infinito que mueve los archivos while true; do files= for file in `ls $SOURCEDIR` ; do files=1 checkfilename $file if [ "$?" -eq 0 ]; then mv $SOURCEDIR$file $ACEPTDIR fecha=$(date +%d/%m/%Y-%H:%M) echo "$fecha $USER afimonio:\"Se detecta archivo de llamadas $file\"" >> $LOGFILE else mv $SOURCEDIR$file $REJECTDIR fecha=$(date +%d/%m/%Y-%H:%M) echo "$fecha $USER afimonio:\"Se rechaza el archivo $file\"" >> $LOGFILE fi clean_log "$LOGFILE" "$AFIM_LOGSIZE" done #for # me fijo si el antifraude esta corriendo y si no lo esta lo arranco if [ -n $files ] && ! is_lock "antifraude.pl"; then $BINDIR/antifraude.pl & fi sleep 5 done #while