root/scripts/ldap/genexpal.sh @ 543
535 | adminies.v | #!/bin/sh
|
|
# Tiene de entrada un fichero de alumnos descargado de rayuela. Elimina de dicho fichero
|
|||
# los alumnos que ya est?n en ldap, de tal manera que quedan solamente los nuevos alumnos.
|
|||
# Este script debe estar en el mismo directorio que el archivo .zip de exportacion
|
|||
# de alumnos de Rayuela mas reciente (bueno, cualquiera vale, pero lo suyo es tener
|
|||
# los alumnos al dia).
|
|||
# Funcionamiento : genexpal.sh Exportacion_Mas_Reciente.zip
|
|||
rm -f Alumnos_nuevos.xml
|
|||
rm -r ./NuevaExportacion
|
|||
clear
|
|||
echo -n "Contraseña de administrador de la BBDD ldap:"
|
|||
read pwd
|
|||
if [ $# -lt 1 ]; then
|
|||
echo
|
|||
echo Funcionamiento : genexpal.sh Exportacion_Mas_Reciente.zip
|
|||
ls -lh
|
|||
exit 1
|
|||
fi
|
|||
if [ ! -f $1 ]; then
|
|||
echo
|
|||
echo Funcionamiento : genexpal.sh Exportacion_Mas_Reciente.zip
|
|||
echo Y ademas tiene que existir $1.
|
|||
ls -lh
|
|||
exit 1
|
|||
fi
|
|||
error=`unzip -t $1 | grep "No errors detected"`
|
|||
if [ "$error" = "" ]; then
|
|||
echo
|
|||
echo Errores en fichero comprimido $1, abortando...
|
|||
exit 1
|
|||
fi
|
|||
unzip -o $1 -d ./NuevaExportacion/
|
|||
# Sacamos los nie para no hacer grep sobre un fichero tan gordo todo el tiempo
|
|||
ldapsearch -w $pwd -xLLL -h ldap -b "ou=People,dc=instituto,dc=extremadura,dc=es" homeDirectory| tr '\n' ' ' | sed 's/dc=es/dc=es\n/g' | grep alumnos | tr '/' ' '| cut -d" " -f6 > estudiantes
|
|||
#ldapsearch -w $pwd -xLLL -h ldap -b "cn=students,ou=Group,dc=instituto,dc=extremadura,dc=es" member | tr '=,' ' ' | cut -d" " -f3 > estudiantes
|
|||
while read ident
|
|||
do
|
|||
ldapsearch -w $pwd -xLLL -h ldap -b "uid=$ident,ou=People,dc=instituto,dc=extremadura,dc=es" employeeNumber | grep employeeNumber | cut -d" " -f2 >> nies_existentes
|
|||
done < estudiantes
|
|||
# Estas tonter?as son para el porcentaje
|
|||
total_lineas=`wc -l ./NuevaExportacion/Alumnos.xml | cut -d" " -f1`
|
|||
lineas=1
|
|||
# Variable de guarda, para saber cu?ndo copiar
|
|||
copiar=si
|
|||
clear
|
|||
echo Empezamos, esto va a tardar un ratillo...
|
|||
while [ $lineas -le $total_lineas ]
|
|||
do
|
|||
linea=`head -$lineas ./NuevaExportacion/Alumnos.xml | tail -1`
|
|||
etiqueta=`echo $linea | tr '<' '>' | cut -d">" -f2`
|
|||
tpc=`expr $lineas \* 100 / $total_lineas`
|
|||
echo -n "Procesando l?nea $lineas...$tpc% completado..."
|
|||
echo -ne "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
|
|||
lineas=`expr $lineas + 1`
|
|||
if [ "$etiqueta" = "nie" ]; then
|
|||
valor_nies=`echo $linea | tr '<' '>' | cut -d">" -f3`
|
|||
if [ "`grep -c "$valor_nies" nies_existentes`" != "0" ]; then
|
|||
copiar=no
|
|||
else
|
|||
copiar=si
|
|||
echo "<alumno>" >> Alumnos_nuevos.xml
|
|||
fi
|
|||
fi
|
|||
if [ "$copiar" = "si" -a "$etiqueta" != "alumno" ]; then
|
|||
echo "$linea" >> Alumnos_nuevos.xml
|
|||
fi
|
|||
if [ "$copiar" = "no" -a "$etiqueta" = "nombre-fichero" ]; then
|
|||
fichero_foto=`echo $linea | tr '<' '>' | cut -d">" -f3`
|
|||
rm -f ./NuevaExportacion/$fichero_foto
|
|||
fi
|
|||
if [ "$copiar" = "no" -a "$etiqueta" = "/alumno" ]; then
|
|||
copiar=si
|
|||
fi
|
|||
done
|
|||
rm -f nies_existentes
|
|||
#iconv -t ISO_8859-1//TRANSLIT Alumnos_nuevos.xml -o ./NuevaExportacion/Alumnos.xml
|
|||
cp -f Alumnos_nuevos.xml ./NuevaExportacion/Alumnos.xml
|
|||
rm -f Alumnos.xml
|
|||
rm -f estudiantes
|
|||
cd ./NuevaExportacion
|
|||
nuevaexp="NuevaExportacionAlumnos`date +%y%m%d`"
|
|||
zip ../$nuevaexp *
|
|||
cd ..
|
|||
rm -r ./NuevaExportacion
|
|||
echo
|
|||
echo Exportacion generada : $nuevaexp.zip
|
|||
echo Contiene `grep -c "<alumno>" Alumnos_nuevos.xml` nuevos alumnos para incluir.
|
|||
rm -f Alumnos_nuevos.xml
|