]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blob - inst/afimonio
Se agrega locking
[z.facultad/75.08/llamadas.git] / inst / afimonio
1 #!/bin/bash
2 # uso las funciones de util.sh
3 . "$HOME/.antifraude/util.sh"
4
5 trap "finalize" INT
6
7 # Es llamada por los trap para deslockear el afimonio 
8 finalize() {
9         unlock "afimonio" 
10 }
11
12 # filtra el nombre del archivo pasado por parametro sacandole todos los
13 # caracteres que no sean numeros 
14 checkfilename(){
15         date=`echo $1 | cut -d "." -f 1`
16         central=`echo $1 | cut -d "." -f 2`
17
18         validar_solo_numeros "$date"
19         if [ "$?" -ne 0 ]; then
20                 return 1
21         fi
22         mes=${date:4:2}
23         validar_rango "$mes" "1" "12"
24         if [ "$?" -ne 0 ]; then
25                 return 1
26         fi
27         dia=${date:6:2}
28         validar_rango "$dia" "1" "31" 
29         if [ "$?" -ne 0 ]; then
30                 return 1
31         fi
32         hora=${date:8:2}
33         validar_rango "$hora" "0" "23"
34         if [ "$?" -ne 0 ]; then
35                 return 1
36         fi
37         min=${date:10:2}
38         validar_rango "$min" "0" "59"
39         if [ "$?" -ne 0 ]; then
40                 return 1
41         fi
42         validar_solo_numeros "$central"
43         if [ "$?" -ne 0 ]; then
44                 return 1
45         fi
46         return 0                
47 }
48
49 #--------------------MAIN SCRIPT----------------------
50
51 # Verifico no correr 2 veces
52 if is_lock "afimonio" ; then
53         echo "Ya hay una instancia de afimonio corriendo"
54         exit 1
55 fi
56
57 # Me lockeo por las dudas
58 lock "afimonio" 
59
60 # Busco el archivo de configuracion para recuperar las rutas hacia los archivos
61 # que debo leer.
62
63 anticonf=~/sop/conf/afinstal.conf
64
65 #anticonf=~/.antifraude/conf/antifraude.conf
66 #afimconf=~/.antifraude/conf/afimonio.conf
67
68 # Recupero las rutas a todos los directorios y archivos que necesito
69 # Del antifraude
70 DATADIR=`grep -n "DATADIR" $anticonf | sed "s?.*DATADIR\ =\ ??"`
71 SOURCEDIR="$DATADIR/aprocesar/"
72 ACEPTDIR="$DATADIR/enproceso/"
73 REJECTDIR="$DATADIR/rechazadas/"
74 BINDIR=`grep -n "BINDIR" $anticonf | sed  "s?.*BINDIR\ =\ ??"`
75
76 # Del afimonio
77 LOGDIR=`grep -n "LOGDIR" $afimconf | sed "s?.*LOGDIR\ =\ ??"`
78 LOGNAME=`grep -n "LOGFILE" $afimconf | sed "s?.*LOGFILE\ =\ ??"`
79 logfile=$LOGDIR/$LOGNAME
80
81 # Comienza el ciclo infinito que mueve los archivos
82 while [ true ]; do 
83         for file in `ls $SOURCEDIR` ; do
84                 checkfilename $file     
85                 if [ "$?" -eq 0 ]; then
86                         mv $SOURCEDIR$file $ACEPTDIR #cambiar copiar por mover
87                         fecha=$(date +%d/%m/%Y-%H:%M)
88                         echo "$fecha $USER afimonio:\"Se detecta archivo de llamadas $file\"" >> $logfile
89                 else 
90                         mv $SOURCEDIR$file $REJECTDIR #cambiar copiar por mover
91                         fecha=$(date +%d/%m/%Y-%H:%M)
92                         echo "$fecha $USER afimonio:\"Se rechaza el  archivo $file\"" >> $logfile
93                 fi
94         done #for
95         # me fijo si el antifraude esta corriendo y si no lo esta lo arranco
96         if ! is_lock "antifraude.pl" ; then
97                 echo "DISPARANDO ANTIFRAUDE"
98                 $BINDIR/antifraude.pl
99         fi
100         break
101         # sleep 60
102 done #while 
103