Script para comprobar las notas

Hoy he estado todo el día esperando que pusieran mis notas en la página web del departamento dedicado a ese fin. Bien, pues cómo estaba harto de llevarme toda la tarde recargando escribí un script en bash, con ayuda de Carlos Parra, para comprobar si se han realizado cambios en la página web y así ver si se han puesto ya las notas o no.

[code lang="shell"]
#/bin/bash

URL=”http://www.la_url_de_las_notas/”
wget -O temp.old $URL
while [ 1 == 1 ]
do
sleep 60
wget -O temp.new $URL
if [ "$(diff -u temp.new temp.old)" != "" ]; then
diff -u temp.new temp.old
exit
fi
rm temp.old
mv temp.new temp.old
done
[/code]

Básicamente lo que hace es descargarse la web e irla comparando, en el caso de que haya cambios lo imprime por pantalla y el script se para. Hay que tener cuidado, porque si ponemos un sleep muy corto (es decir, un tiempo muy corto) podemos hacer un ataque de denegación de servicio brutal, aunque es casi improbable.


Eduardo Robles Elvira a las 30 Enero, 2007 a las 2:50 am [link]

while [ 1 ] también furula eh :P

Ahora mandaré un mensaje a la lista al respecto

PD: Me voy que tengo que escupir (nota, para entender esto, envía primero un comentario a este blog)

Carlos a las 30 Enero, 2007 a las 5:16 pm [link]

while [ 1 ] funciona en bash, si señor, pero cuidado porque hay en otras shell que no le gusta nada esto. Vamos, que el == es más portable pero para la finalidad que tenemos aquí nos sobra y nos basta con lo que nos propone Edu ;-)

Güeno, vamos a depurarlo:
o En vez de la condición [ "..." != "" ] podría ponerse [ -n "..." ] que significa que el valor es cierto cuando la expresión “…” es distinta de vacia.

o No hace falta borrar el fichero temporal si después vas a hacer el mv:

‘rm b && mv a b’ obtiene el mismo resultado que ‘mv a b’

o Es de mala educación ejecutar dos veces el mismo comando si sabes que vas a obtener la misma respuesta. Así que la salida del diff debe meterse en una variable y trabajar con esa variable para evitar llamadas al sistema innecesarias :-)

Bah, todo esto es optimización, ¿quien quiere de eso con los core 2 duo de hoy día? :P:P

cossitas a las 1 Febrero, 2007 a las 12:47 am [link]

Bueno, ¿y no vas a decir que el susodicho examen lo has aprobado? Además, siendo el único aprobado y con 7 y de media para la asignatura un 8 ¡empollón! …sabes que todo lo que te propones lo consigues …pero si te lo curras un poco.
Muuuuaaiii

Cuentame algo...