-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgestiona-prac.sh
132 lines (118 loc) · 5.02 KB
/
gestiona-prac.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash
echo -e "\nASO 22/23 - Practica 6\nSantiago Bauzá Hirschler\n\nGestion de practicas\n--------------------"
#OPCIONES
a="Programar recogida de prácticas"
b="Empaquetado de prácticas de una asignatura"
c="Ver tamaño y fecha del fichero de una asignatura"
d="Finalizar programa"
rutaLog="/media/kali/ESD-USB/ASO/P6/informe-prac.log"
rutaRecogePracticas="/media/kali/ESD-USB/ASO/P6/recoge-prac.sh"
PS3="Opción: "
recogida_practica(){
echo -e "\nMenú 1 – Programar recogida de prácticas\n"
read -p "Asignatura cuyas prácticas desea recoger: " asig
read -p "Ruta con las cuentas de los alumnos: " rutaOrig
read -p "Ruta para almacenar prácticas: " rutaDest
if [ ! -d $rutaOrig ] ; then
echo -e "Log of echo -e\n$(date)\n\nNo existe la ruta origen.\nVolvinedo al menú principal\n\n$(date)\n----------------" >> $rutaLog;
echo -e "No existe la ruta origen.\nVolvinedo al menú principal"
menu_principal
fi
if [ ! -d $rutaDest ] ; then
echo -e "Log of echo -e\n$(date)\n\nNo existe la ruta destino.\nVolvinedo al menú principal\n\n$(date)\n----------------" >> $rutaLog;
echo -e "No existe la ruta destino.\nVolvinedo al menú principal"
menu_principal
fi
echo -e "Se va a programar la recogida de las prácticas de $asig para mañana a las 8:00. Origen: $rutaOrig Destino: $rutaDest"
while true; do
read -p "Desea Continuar S/N?" op
case $op in
[Ss]* ) echo -e "Log of echo \n$(date)\n\nLa recogida de practicas ha sido programada. ! \n\n$(date)\n----------------" >> $rutaLog;
echo "La recogida de practicas ha sido programada. !"
crontab -l > crontab_new
echo "0 8 * * * bash $rutaRecogePracticas $rutaOrig $rutaDest $rutaLog " >> crontab_new
cat crontab_new | sort | uniq > crontab_new_aux
crontab crontab_new_aux
rm crontab_new
rm crontab_new_aux
sleep 10;break;;
[Nn]* ) echo -e "Log of echo \n$(date)\n\nLa recogida no ha sido programada. ! \n\n$(date)\n----------------" >> $rutaLog;
echo "La recogida no ha sido programada. !" ; break;;
* ) echo "Seleccione Si o No.";;
esac
done
}
empaquetar_practicas(){
echo -e "\nMenú 2 – Empaquetar prácticas de la asignatura\n"
read -p "Asignatura cuyas prácticas se desea empaquetar: " asig
read -p "Ruta absoluta del directorio de prácticas:" rutaAbsolutaDirectorio
if [ ! -d $rutaAbsolutaDirectorio ] ; then
echo -e "Log of echo -e\n$(date)\n\nEl directorio a salvar no existe.\nVolvinedo al menú principal\n\n$(date)\n----------------" >> $rutaLog;
echo -e "El directorio a salvar no existe.\nVolvinedo al menú principal"
menu_principal
fi
if [ -f $rutaAbsolutaDirectorio/$asig-$(date +%y%m%d).tgz ]; then
echo -e "Log of echo -e\n$(date)\n\nEl archivo .tgz ya existe\n\n$(date)\n----------------" >> $rutaLog;
echo -e "El archivo .tgz ya existe"
menu_principal
fi
echo -e "Se van a empaquetar las prácticas de la asignatura $asig presentes en el directorio $rutaAbsolutaDirectorio."
while true; do
read -p "Desea Continuar S/N?" op
case $op in
[Ss]* ) echo -e "Log of echo \n$(date)\n\nLas prácticas han sido empaquetadas. ! \n\n$(date)\n----------------" >> $rutaLog;
echo "Las prácticas han sido empaquetadas. !"
echo -e "Log of cd $rutaAbsolutaDirectorio && tar czf $asig-$(date +%y%m%d).tgz\n$(date)\n\n$($(cd $rutaAbsolutaDirectorio && tar cpzf $asig-$(date +%y%m%d).tgz *) >> $rutaLog && echo "OK" || echo "FAILED")\n\n$(date)\n\n----------------" >> $rutaLog;
sleep 10;break;;
[Nn]* ) echo -e "Log of echo \n$(date)\n\La prácticas no ha sido empaquetadas. ! \n\n$(date)\n----------------" >> $rutaLog;
echo "La prácticas no ha sido empaquetadas. !" ; break;;
* ) echo "Seleccione Si o No.";;
esac
done
}
obtener_nBytesFichero(){
echo -e "\nMenú 3 – Obtener tamaño y fecha del fichero\n"
read -p "Asignatura sobre la que queremos información: " asig
read -p "Ruta absoluta del archivo de prácticas (incluido al final):" rutaAbsolutaArchivo
if [ ! -f $rutaAbsolutaArchivo ] ; then
echo -e "Log of echo -e\n$(date)\n\El fichero $rutaAbsolutaArchivo no existe.\nVolvinedo al menú principal\n\n$(date)\n----------------" >> $rutaLog;
echo -e "El fichero $rutaAbsolutaArchivo no existe.\nVolvinedo al menú principal"
menu_principal
fi
echo -e "Log of echo \n$(date)\n\nEl fichero generado es $(basename $rutaAbsolutaArchivo) y ocupa $(cat $rutaAbsolutaArchivo | wc -c ) bytes.\n\n$(date)\n----------------" >> $rutaLog;
echo "El fichero generado es $(basename $rutaAbsolutaArchivo) y ocupa $(cat $rutaAbsolutaArchivo | wc -c ) bytes."
sleep 10;
}
menu_principal () {
echo -e " \nMenú"
select menu in "$a" "$b" "$c" "$d";
do
case $menu in
$a)clear
recogida_practica
sleep 3
clear
menu_principal
;;
$b)clear
empaquetar_practicas
sleep 3
clear
menu_principal
;;
$c)clear
obtener_nBytesFichero
sleep 3
clear
menu_principal
;;
$d)clear
exit
;;
*)
echo "(*) $REPLY no es una opción valida"
;;
esac
done
}
menu_principal