domingo, 1 de marzo de 2020

Ubuntu en Android 2: ahora con JAVA


En el anterior post (https://www.tecnificados.com/2020/02/ubuntu-en-android.html) os comentaba que acaba de descrubrir el emulador "Termux", y todas las cosas que en teoría se podían hacer con él.

Esta semana he estado probándolo, y en este artículo os quiero comentar todo lo que he hecho y el resultado final de las pruebas.

Mi objetivo como os comenté, era poder lanzar tareas programadas, por lo que vendría fenomenal utilizar "cron". Misteriosamente no venía instalado en la imagen que estamos utilizando, pero nada que no se arregle con los comandos: apt install cron y service cron start (arrancamos el servicio).

Una vez hecho ya tenía preparado el "ejecutor" de mis tareas.

Para probarlo bien, necesitaba lanzar una tarea periódica que actualizara datos continuamente, así se me ocurrió utilizar el IBEX 35, programe un pequeño script sh en Linux que descarga el json, y lo subía al repositorio.

Para esto también me instalé "curl" (apt install curl) y "git" (apt install git).

Después de esto, solo necesitaba programar cron con el comando crontab -e.

Añadí esta línea:


1,30 8-18 * * 1-5       /root/termuxTest/ibex35.sh

Y con esta expresión conseguí que el script se ejecutara en el minuto 1 y 30 desde las 8 hasta las 18 de lunes a viernes.

Las pruebas fueron todo un éxito:


Pensar que todos estos commits los hacía mi móvil mientras yo estaba en otra cosa.

Algunos me habéis preguntado por la batería, la verdad es que sí he notado que me gasta un poco más, pero como mucho un 10%.

Os dejo aquí el código del script que utilicé, por si os pudiera servir de algo:

cd "$(dirname "$0")"
date=$(date '+%Y-%m-%d %H:%M:%S')
echo $date
git pull
curl 'urlDondeConseguirLosDatosEnJSON'  > ibex35.json
git add .
git commit -m "Datos actualizados $date"
git push

Una vez que verifiqué esto funcionaba, me instale JAVAapt install openjdk-11-jre

También me instalé maven: apt install maven

Y después cloné mi repositorio evaluador (https://github.com/tecnificados/evaluador), me generé el jar y con este pequeño script:


rm -f datosgobes.csv
wget http://ondemand2.redes.ondemand.flumotion.com/redes/ondemand2/Datosabiertos/datosgobes.csv
java -jar evaluador.jar

Ya consigo ejecutar mi evaluador de Portales de Datos Abiertos desde el móvil. Podéis verlo en este vídeo:


Como conclusión final: puedo ahorrarme el servidor que tenía pensando contratar. Para tareas que no requieren mucha CPU, mi móvil tiene la potencia necesaria para realizar este tipo de tareas.