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