]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blob - inst/afimonio
Agrego material pulenta para el final.
[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 # Es llamada por los trap para deslockear el afimonio 
9 finalize() {
10         unlock "afimonio" 
11         exit 0
12 }
13
14 # filtra el nombre del archivo pasado por parametro sacandole todos los
15 # caracteres que no sean numeros 
16 checkfilename(){
17         date=`echo $1 | cut -d "." -f 1`
18         central=`echo $1 | cut -d "." -f 2`
19
20         validar_solo_numeros "$date"
21         if [ "$?" -ne 0 ]; then
22                 return 1
23         fi
24         mes=${date:4:2}
25         validar_rango "$mes" "1" "12"
26         if [ "$?" -ne 0 ]; then
27                 return 1
28         fi
29         dia=${date:6:2}
30         validar_rango "$dia" "1" "31" 
31         if [ "$?" -ne 0 ]; then
32                 return 1
33         fi
34         hora=${date:8:2}
35         validar_rango "$hora" "0" "23"
36         if [ "$?" -ne 0 ]; then
37                 return 1
38         fi
39         min=${date:10:2}
40         validar_rango "$min" "0" "59"
41         if [ "$?" -ne 0 ]; then
42                 return 1
43         fi
44         validar_solo_numeros "$central"
45         if [ "$?" -ne 0 ]; then
46                 return 1
47         fi
48         return 0                
49 }
50
51 #--------------------MAIN SCRIPT----------------------
52
53 # Recupero las rutas a todos los directorios y archivos que necesito
54 # Del antifraude
55 DATADIR=$ANTI_DATADIR
56 SOURCEDIR=$DATADIR/aprocesar/
57 ACEPTDIR=$DATADIR/enproceso/
58 REJECTDIR=$DATADIR/rechazadas/
59 BINDIR=$ANTI_BINDIR
60
61 # Del afimonio
62 LOGDIR=$AFIM_LOGDIR
63 LOGNAME=$AFIM_LOGFILE
64 LOGFILE=$LOGDIR/$LOGNAME
65
66 # Capturo seƱales para salir bien (liberando el lock)
67 trap "finalize" INT
68 trap "finalize" TERM 
69
70 # Me lockeo
71 lock "afimonio" || die "No se puede correr, hay otra instancia corriendo o no se puede crear el lock file!"
72
73 # Comienza el ciclo infinito que mueve los archivos
74 while true; do 
75         files=
76         for file in `ls $SOURCEDIR` ; do
77                 files=1
78                 checkfilename $file     
79                 if [ "$?" -eq 0 ]; then
80                         mv "$SOURCEDIR$file" "$ACEPTDIR"
81                         fecha=$(date +%d/%m/%Y-%H:%M)
82                         echo "$fecha $USER afimonio:\"Se detecta archivo de llamadas $file\"" >> $LOGFILE
83                 else 
84                         mv "$SOURCEDIR$file" "$REJECTDIR"
85                         fecha=$(date +%d/%m/%Y-%H:%M)
86                         echo "$fecha $USER afimonio:\"Se rechaza el archivo $file\"" >> $LOGFILE
87                 fi
88                 clean_log "$LOGFILE" "$AFIM_LOGSIZE"
89         done #for
90         # me fijo si el antifraude esta corriendo y si no lo esta lo arranco
91         if [ -n $files ] && ! is_lock "antifraude.pl"; then
92                 $BINDIR/antifraude.pl &
93         fi
94         sleep 5
95 done #while 
96